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 { # elementy na tej stronie
...
}
pageInfo { # metadane paginacji
hasNextPage
hasPreviousPage
startCursor
endCursor
}
totalCount # łączna liczba elementów (wszystkie strony)
}
}
Pobieranie stron
Użyj argumentów first i after, aby przechodzić do przodu przez kolekcję:
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ń przy pierwszym żądaniu
Wartość endCursor z pageInfo staje się wartością after dla następnej strony. Kontynuuj, aż hasNextPage będzie miało wartość false.
Aby przechodzić do tyłu, 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
}
}