Phân trang
API của Altium 365 sử dụng cơ chế phân trang dựa trên con trỏ, tuân theo đặc tả kết nối Relay. Các truy vấn tập hợp trả về một kiểu connection chứa danh sách các nút, siêu dữ liệu phân trang và các con trỏ để điều hướng tiến hoặc lùi qua kết quả.
Cấu trúc Connection
Một phản hồi được phân trang có dạng như sau:
query {
someCollection {
nodes { # the items on this page
...
}
pageInfo { # pagination metadata
hasNextPage
hasPreviousPage
startCursor
endCursor
}
totalCount # total number of items (all pages)
}
}
Lấy các trang
Sử dụng các đối số first và after để phân trang tiến qua một tập hợp:
query {
desProjects(first: 20, after: "{cursor}") {
nodes {
id
name
}
pageInfo {
hasNextPage
endCursor
}
}
}
-
first– số lượng mục cần trả về (kích thước trang) -
after– con trỏ đánh dấu điểm kết thúc của trang trước; bỏ qua ở yêu cầu đầu tiên
endCursor từ pageInfo sẽ trở thành giá trị after cho trang tiếp theo. Tiếp tục cho đến khi hasNextPage là false.
Để phân trang lùi, hãy sử dụng last và before cùng với startCursor.
Yêu cầu đầu tiên
Đối với trang đầu tiên, hãy bỏ qua đối số after:
query {
desProjects(first: 20) {
nodes {
id
name
updatedAt
}
pageInfo {
hasNextPage
endCursor
}
totalCount
}
}
Sử dụng totalCount để xác định sẽ có bao nhiêu trang trước khi bắt đầu phân trang.
Đếm mà không lấy mục
Nếu bạn chỉ cần tổng số lượng, bạn có thể bỏ qua hoàn toàn nodes:
query {
desProjects {
totalCount
}
}