Aus Gründen der Leistung und Skalierung ist die Anzahl der zurückgegebenen Einträge pro Anfrage begrenzt. Es gibt einen Paginierungsmechanismus, der es ermöglicht, über eine Cursor-Pased-Paginierung zum nächsten Stapel von Einträgen zu springen. Das Konzept basiert auf Verbindungen und Kanten, die in GraphQL ein Quasi-Standard für die Paginierung sind.Bei Abfragen, die eine Paginierung ermöglichen, können die Argumente first und after sowie eine angeforderte pageInfo festgelegt werden.Das erste Argument definiert, wie viele Elemente mit der Anfrage zurückgegeben werden sollen. Aus Leistungsgründen darf dieser Wert nicht höher als 50 sein.Die pageInfo enthält einen endCursor, der den Cursor des letzten Elements auf der Seite definiert. Dieser endCursor kann dann für das after-Argument der nächsten Anfrage verwendet werden, um die nachfolgenden Elemente nach dem endCursor zu erhalten.Die Parameter zur Steuerung der Seitennummerierung sind im Schema dokumentiert.
Für die erste Seite muss kein „after“-Argument festgelegt werden. Die folgende Anfrage gibt die ersten 50 Einträge zusammen mit einer „pageInfo“ zurück, die den „endCursor“ der Seite enthält.
{
allEntries(first: 50) {
totalCount
pageInfo {
hasNextPage
endCursor
}
edges {
node {
id
name
}
}
}
}
Um die nächsten 50 Einträge anzufordern, nehmen wir den Endcursor der vorherigen Antwort und setzen ihn wie folgt für das After-Argument der nächsten Anforderung:
{
allEntries(first: 50, after: "NTA") {
totalCount
pageInfo {
hasNextPage
endCursor
}
edges {
node {
id
name
}
}
}
}