Phân trang
API của Altium 365 sử dụng cơ chế phân trang dựa trên cursor theo đặc tả kết nối Relay. Các truy vấn collection trả về một kiểu connection chứa danh sách node, siêu dữ liệu phân trang và các cursor để điều hướng tiến hoặc lùi qua các kết quả.
Cấu trúc Connection
Phản hồi phân trang có dạng như sau:
query {
someCollection {
nodes { # các mục trên trang này
...
}
pageInfo { # siêu dữ liệu phân trang
hasNextPage
hasPreviousPage
startCursor
endCursor
}
totalCount # tổng số mục (tất cả các trang)
}
}
Lấy các trang
Sử dụng các đối số first và after để phân trang tiến qua một collection:
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– cursor đánh dấu phần cuối 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, sử dụng last và before 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
}
}