{"meta":{"title":"Verwenden der Paginierung in der GraphQL-API","intro":"Erfahren Sie, wie Sie Datensätze mithilfe der cursorbasierten Paginierung mit der GraphQL-API durchlaufen.","product":"GraphQL-API","breadcrumbs":[{"href":"/de/enterprise-server@3.22/graphql","title":"GraphQL-API"},{"href":"/de/enterprise-server@3.22/graphql/guides","title":"Anleitungen"},{"href":"/de/enterprise-server@3.22/graphql/guides/using-pagination-in-the-graphql-api","title":"Paginierung"}],"documentType":"article"},"body":"# Verwenden der Paginierung in der GraphQL-API\n\nErfahren Sie, wie Sie Datensätze mithilfe der cursorbasierten Paginierung mit der GraphQL-API durchlaufen.\n\n## Informationen zur Paginierung\n\nDie GraphQL-API von GitHub beschränkt die Anzahl der Elemente, die Sie in einer einzigen Anforderung abrufen können, um so vor übermäßigen oder missbräuchlichen Anforderungen an die GitHub-Server zu schützen. Wenn Sie die GraphQL-API verwenden, müssen Sie für jede Verbindung ein `first`- oder ein `last`-Argument angeben. Der Wert dieser Argumente muss zwischen 1 und 100 liegen. Die GraphQL-API gibt die Anzahl der Verbindungen zurück, die durch das `first`- oder das `last`-Argument angegeben wurden.\n\nWenn die Daten, auf die Sie zugreifen, über mehr Verbindungen als die Anzahl der durch das `first`- oder `last`-Argument angegebenen Elemente verfügen, wird die Antwort in kleinere „Seiten“ der angegebenen Größe unterteilt. Diese Seiten können jeweils einzeln abgerufen werden, bis der gesamte Datensatz abgerufen wurde. Jede Seite enthält die Anzahl der durch das `first`- oder `last`-Argument angegebenen Elemente, es sei denn, sie ist die letzte Seite, die eine niedrigere Anzahl von Elementen enthalten kann.\n\nIn diesem Leitfaden wird veranschaulicht, wie du zusätzliche Ergebnisseiten für paginierte Antworten anforderst, die Anzahl der auf jeder Seite zurückgegebenen Ergebnisse änderst und ein Skript schreibst, um mehrere Ergebnisseiten abzurufen.\n\n## Anfordern einer `cursor` in Ihrer Abfrage\n\nBei Verwendung der GraphQL-API verwenden Sie Cursor, um ein paginiertes Dataset zu durchlaufen. Der Cursor stellt eine bestimmte Position im Dataset dar. Sie können den ersten und letzten Cursor auf einer Seite abrufen, indem Sie das `pageInfo`-Objekt abfragen. Zum Beispiel:\n\n```graphql\nquery($owner: String!, $name: String!) {\n  repository(owner: $owner, name: $name) {\n    pullRequests(first: 100, after: null) {\n      nodes {\n        createdAt\n        number\n        title\n      }\n      pageInfo {\n        endCursor\n        startCursor\n        hasNextPage\n        hasPreviousPage\n      }\n    }\n  }\n}\n```\n\nIn diesem Beispiel gibt `pageInfo.startCursor` den Cursor für das erste Element auf der Seite an.\n`pageInfo.endCursor` gibt den Cursor für das letzte Element auf der Seite an.\n`pageInfo.hasNextPage` und `pageInfo.hasPreviousPage` geben an, ob vor und nach der zurückgegebenen Seite eine Seite vorhanden ist.\n\n## Ändern der Anzahl der Elemente pro Seite\n\nDie Argumente `first` und `last` steuern, wie viele Elemente zurückgegeben werden. Die maximale Anzahl von Elementen, die Sie mit dem Argument `first` oder `last` abrufen können, beträgt 100. Möglicherweise müssen Sie weniger als 100 Elemente anfordern, wenn Ihre Abfrage viele Daten berührt, um zu vermeiden, dass ein Raten- oder Knotenlimit erreicht wird. Weitere Informationen finden Sie unter [Ratenbegrenzungen und Abfragegrenzwerte für die GraphQL-API](/de/enterprise-server@3.22/graphql/overview/rate-limits-and-query-limits-for-the-graphql-api).\n\n## Durchlaufen eines Datensatzes mithilfe der Paginierung\n\nNachdem Sie einen Cursor aus einer Abfrage zurückgegeben haben, können Sie den Cursor verwenden, um die nächste Ergebnisseite anzufordern. Um dies zu tun, verwenden Sie das Argument `after` oder `before` und den Cursor.\n\nAngenommen, der `pageInfo.endCursor`-Wert aus dem vorherigen Beispiel lautete `Y3Vyc29yOnYyOpHOUH8B7g==`. Sie können nun diese Abfrage verwenden, um die nächste Ergebnisseite anzufordern:\n\n```graphql\nquery($owner: String!, $name: String!) {\n  repository(owner: $owner, name: $name) {\n    pullRequests(first: 1, after: \"Y3Vyc29yOnYyOpHOUH8B7g==\") {\n      nodes {\n        createdAt\n        number\n        title\n      }\n      pageInfo {\n        endCursor\n        hasNextPage\n        hasPreviousPage\n      }\n    }\n  }\n}\n```\n\nSie können weiterhin Abfragen mit dem neuen `pageInfo.endCursor`-Wert senden, der in der Antwort zurückgegeben wird, bis keine zu durchlaufenden Seiten mehr vorhanden sind, die durch `pageInfo.hasNextPage` angegeben sind und `false` zurückgeben.\n\nWenn Sie das `last`-Argument anstelle des `first`-Arguments angegeben haben, wird die letzte Seite der Ergebnisse zuerst zurückgegeben. In diesem Fall verwenden Sie den `pageInfo.startCursor`-Wert und das `before`-Argument, um die vorherige Ergebnisseite abzurufen. Sobald `pageInfo.hasPreviousPage``false` zurückgibt, haben Sie die letzte Seite erreicht. Zum Beispiel:\n\n```graphql\nquery($owner: String!, $name: String!) {\n  repository(owner: $owner, name: $name) {\n    pullRequests(last: 1, before: \"R3Vyc29yOnYyOpHOHcfoOg==\") {\n      nodes {\n        createdAt\n        number\n        title\n      }\n      pageInfo {\n        startCursor\n        hasPreviousPage\n      }\n    }\n  }\n}\n```\n\n## Nächste Schritte\n\nSie können das Octokit-SDK von GitHub und das `octokit/plugin-paginate-graphql`-Plug-In verwenden, um die Paginierung in Ihren Skripts zu unterstützen. Weitere Informationen finden Sie unter [plugin-paginate-graphql.js](https://github.com/octokit/plugin-paginate-graphql.js)."}