Paginacja
Interfejs API Altium 365 używa paginacji opartej na kursorach zgodnie ze specyfikacją połączeń Relay connection specification. Zapytania o kolekcje zwracają typ connection zawierający listę węzłów, metadane paginacji oraz kursory do poruszania się do przodu lub do tyłu po wynikach.
Struktura połączenia
Odpowiedź stronicowana ma następującą postać:
query {
someCollection {
nodes { # the items on this page
...
}
pageInfo { # pagination metadata
hasNextPage
hasPreviousPage
startCursor
endCursor
}
totalCount # total number of items (all pages)
}
}
Pobieranie stron
Użyj argumentów first i after, aby przechodzić do przodu po kolekcji:
query {
desProjects(first: 20, after: "{cursor}") {
nodes {
id
name
}
pageInfo {
hasNextPage
endCursor
}
}
}
-
first– liczba elementów do zwrócenia (rozmiar strony) -
after– kursor oznaczający koniec poprzedniej strony; pomiń go w pierwszym żądaniu
Wartość endCursor z pageInfo staje się wartością after dla następnej strony. Kontynuuj, aż hasNextPage będzie równe false.
Aby przechodzić wstecz, użyj last i before wraz z startCursor.
Pierwsze żądanie
Dla pierwszej strony pomiń argument after:
query {
desProjects(first: 20) {
nodes {
id
name
updatedAt
}
pageInfo {
hasNextPage
endCursor
}
totalCount
}
}
Użyj totalCount, aby określić, ilu stron należy się spodziewać przed rozpoczęciem paginacji.
Zliczanie bez pobierania elementów
Jeśli potrzebujesz tylko łącznej liczby, możesz całkowicie pominąć nodes:
query {
desProjects {
totalCount
}
}