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ố firstafter để 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 hasNextPagefalse.

Để phân trang lùi, sử dụng lastbefore 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
  }
}

 

AI-LocalizedBản địa hóa bằng AI
Nếu bạn phát hiện vấn đề, hãy chọn văn bản/hình ảnh và nhấnCtrl + Enterđể gửi phản hồi cho chúng tôi.
Nội dung