{"meta":{"title":"Utilisation de la pagination dans l’API GraphQL","intro":"Découvrez comment parcourir les jeux de données à l’aide de la pagination basée sur le curseur avec l’API GraphQL.","product":"GraphQL API","breadcrumbs":[{"href":"/fr/enterprise-cloud@latest/graphql","title":"GraphQL API"},{"href":"/fr/enterprise-cloud@latest/graphql/guides","title":"Guides"},{"href":"/fr/enterprise-cloud@latest/graphql/guides/using-pagination-in-the-graphql-api","title":"Pagination"}],"documentType":"article"},"body":"# Utilisation de la pagination dans l’API GraphQL\n\nDécouvrez comment parcourir les jeux de données à l’aide de la pagination basée sur le curseur avec l’API GraphQL.\n\n## À propos de la pagination\n\nGitHubl'API GraphQL de }limite le nombre d'éléments que vous pouvez extraire dans une seule requête afin de vous protéger contre les demandes excessives ou abusives adressées aux serveurs de GitHub. Lorsque vous utilisez l’API GraphQL, vous devez fournir un argument `first`ou `last` sur n’importe quelle connexion. La valeur de ces arguments doit être comprise entre 1 et 100. L’API GraphQL retourne le nombre de connexions spécifiées par l’argument `first` ou `last`.\n\nSi les données auxquelles vous accédez ont plus de connexions que le nombre d’éléments spécifiés par l’argument `first` ou `last`., la réponse est divisée en « pages » plus petites de la taille spécifiée. Ces pages peuvent être extraites une à la fois jusqu’à ce que l’ensemble du jeu de données ait été récupéré. Chaque page contient le nombre d’éléments spécifiés par l’argument `first` ou `last`., sauf s’il s’agit de la dernière page, qui peut contenir un nombre inférieur d’éléments.\n\nCe guide montre comment demander des pages de résultats supplémentaires pour les réponses paginées, comment changer le nombre de résultats retournés sur chaque page et comment écrire un script pour récupérer plusieurs pages de résultats.\n\n## Effectuer une demande de `cursor` dans votre requête\n\nLorsque vous utilisez l’API GraphQL, vous utilisez des curseurs pour parcourir un jeu de données paginé. Le curseur représente une position spécifique dans le jeu de données. Vous pouvez obtenir le premier et le dernier curseur d’une page en interrogeant l’objet `pageInfo`. Par exemple :\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\nDans cet exemple, `pageInfo.startCursor` donne le curseur pour le premier élément de la page.\n`pageInfo.endCursor` donne le curseur pour le dernier élément de la page.\n`pageInfo.hasNextPage` et `pageInfo.hasPreviousPage` indiquent s’il existe une page avant et après la page retournée.\n\n## Changement du nombre d’éléments par page\n\nLes arguments `first` ou `last`. contrôlent le nombre d’éléments retournés. Le nombre maximal d’éléments que vous pouvez extraire à l’aide de l’argument `first` ou `last` est de 100. Vous devrez peut-être demander moins de 100 éléments si votre requête touche un grand nombre de données afin d’éviter d’atteindre une limite de débit ou de Nodes. Pour plus d’informations, consultez « [Limites de débit et limites de requête pour l’API GraphQL](/fr/enterprise-cloud@latest/graphql/overview/rate-limits-and-query-limits-for-the-graphql-api) ».\n\n## Parcourir le jeu de données à l’aide de la pagination\n\nUne fois que vous avez retourné un curseur à partir d’une requête, vous pouvez utiliser le curseur pour demander la page suivante des résultats. Pour cela, vous allez utiliser l'argument `after` ou `before` et le curseur.\n\nPar exemple, en supposant que la `pageInfo.endCursor` valeur de l’exemple précédent était `Y3Vyc29yOnYyOpHOUH8B7g==`, vous pouvez utiliser cette requête pour demander la page suivante des résultats :\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\nVous pouvez continuer à envoyer des requêtes avec la nouvelle valeur `pageInfo.endCursor` retournée dans la réponse jusqu’à ce qu’il ne reste aucune page à parcourir, indiquée en `pageInfo.hasNextPage` retournant `false`.\n\nSi vous avez spécifié l’argument `last` au lieu de l’argument `first`, la dernière page de résultats est retournée en premier. Dans ce cas, vous allez utiliser la valeur `pageInfo.startCursor` et l’argument `before` pour obtenir la page précédente des résultats. Une fois `pageInfo.hasPreviousPage` retourné `false`, vous avez atteint la dernière page. Par exemple :\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## Étapes suivantes\n\nVous pouvez utiliser le SDK Octokit de GitHub et le plugin `octokit/plugin-paginate-graphql` pour prendre en charge la pagination dans vos scripts. Pour plus d’informations, consultez [plugin-paginate-graphql.js](https://github.com/octokit/plugin-paginate-graphql.js)."}