Paginierung
Die Altium 365 API verwendet eine cursorbasierte Paginierung gemäß der Relay-Connection-Spezifikation. Collection-Abfragen geben einen connection-Typ zurück, der eine Liste von Knoten, Metadaten zur Paginierung und Cursor zur Navigation vorwärts oder rückwärts durch die Ergebnisse enthält.
Connection-Struktur
Eine paginierte Antwort hat die folgende Form:
query {
someCollection {
nodes { # die Elemente auf dieser Seite
...
}
pageInfo { # Metadaten zur Paginierung
hasNextPage
hasPreviousPage
startCursor
endCursor
}
totalCount # Gesamtzahl der Elemente (alle Seiten)
}
}
Abrufen von Seiten
Verwenden Sie die Argumente first und after, um in einer Collection vorwärts zu blättern:
query {
desProjects(first: 20, after: "{cursor}") {
nodes {
id
name
}
pageInfo {
hasNextPage
endCursor
}
}
}
-
first– Anzahl der zurückzugebenden Elemente (Seitengröße) -
after– Cursor, der das Ende der vorherigen Seite markiert; bei der ersten Anfrage weglassen
Der endCursor aus pageInfo wird zum Wert after für die nächste Seite. Fahren Sie fort, bis hasNextPage false ist.
Um rückwärts zu blättern, verwenden Sie last und before zusammen mit startCursor.
Erste Anfrage
Lassen Sie für die erste Seite das Argument after weg:
query {
desProjects(first: 20) {
nodes {
id
name
updatedAt
}
pageInfo {
hasNextPage
endCursor
}
totalCount
}
}
Verwenden Sie totalCount, um vor Beginn der Paginierung zu bestimmen, wie viele Seiten zu erwarten sind.
Zählen ohne Abrufen von Elementen
Wenn Sie nur die Gesamtanzahl benötigen, können Sie nodes vollständig weglassen:
query {
desProjects {
totalCount
}
}