{"meta":{"title":"Uso de la paginación en la API GraphQL","intro":"Aprenda a recorrer conjuntos de datos mediante la paginación basada en cursores con GraphQL API.","product":"GraphQL API","breadcrumbs":[{"href":"/es/enterprise-cloud@latest/graphql","title":"GraphQL API"},{"href":"/es/enterprise-cloud@latest/graphql/guides","title":"Guías"},{"href":"/es/enterprise-cloud@latest/graphql/guides/using-pagination-in-the-graphql-api","title":"Paginación"}],"documentType":"article"},"body":"# Uso de la paginación en la API GraphQL\n\nAprenda a recorrer conjuntos de datos mediante la paginación basada en cursores con GraphQL API.\n\n## Acerca de la paginación\n\nLa GraphQL API de GitHub limita el número de elementos que se pueden capturar en una sola solicitud para protegerse frente a solicitudes excesivas o abusivas a los servidores de GitHub. Al usar GraphQL API, debe proporcionar un argumento `first` o `last` en cualquier conexión. El valor de estos argumentos debe estar entre 1 y 100. GraphQL API devolverá el número de conexiones especificadas por el argumento `first` o `last`.\n\nSi los datos a los que tiene acceso tienen más conexiones que el número de elementos especificados por el argumento `first` o `last`, la respuesta se divide en \"páginas\" más pequeñas del tamaño especificado. Estas páginas se pueden capturar de una en una hasta que se haya recuperado todo el conjunto de datos. Cada página contiene el número de elementos especificados por el argumento `first` o `last`, a menos que sea la última página, que puede contener un número inferior de elementos.\n\nEn esta guía se describe cómo solicitar más páginas de resultados de respuestas paginadas, cómo cambiar el número de resultados devueltos en cada página y cómo escribir un script para capturar varias páginas de resultados.\n\n## Solicitud de un `cursor` en la consulta\n\nAl usar GraphQL API, se usan cursores para recorrer un conjunto de datos paginado. El cursor representa una posición específica en el conjunto de datos. Puede obtener el primer y último cursor de una página consultando el objeto `pageInfo`. Por ejemplo:\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\nEn este ejemplo, `pageInfo.startCursor` proporciona el cursor para el primer elemento de la página.\n`pageInfo.endCursor` proporciona el cursor para el último elemento de la página.\n`pageInfo.hasNextPage` e `pageInfo.hasPreviousPage` indican si hay una página antes y después de la página que se devolvió.\n\n## Modificación del número de elementos por página\n\nLos argumentos `first` y `last` controlan cuántos elementos se devuelven. El número máximo de elementos que puede capturar mediante el argumento `first` o `last` es 100. Es posible que tenga que solicitar menos de 100 elementos si la consulta toca una gran cantidad de datos para evitar alcanzar un límite de velocidad o un límite de nodos. Para más información, consulta [Límites de frecuencia y consulta para GraphQL API](/es/enterprise-cloud@latest/graphql/overview/rate-limits-and-query-limits-for-the-graphql-api).\n\n## Recorrer un conjunto de datos utilizando paginación\n\nUna vez que devuelva un cursor de una consulta, puede usar el cursor para solicitar la siguiente página de resultados. Para hacerlo, usará el argumento `after` o `before` y el cursor.\n\nPor ejemplo, suponiendo que el valor `pageInfo.endCursor` del ejemplo anterior era `Y3Vyc29yOnYyOpHOUH8B7g==`, puede usar esta consulta para solicitar la siguiente página de resultados:\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\nPuede seguir enviando consultas con el nuevo valor `pageInfo.endCursor` devuelto en la respuesta hasta que no quedan páginas por recorrer, indicado por `pageInfo.hasNextPage` devolviendo `false`.\n\nSi especificó `last` en lugar del argumento `first`, primero se devolverá la última página de resultados. En este caso, usará el valor `pageInfo.startCursor` y el argumento `before` para obtener la página anterior de resultados. Una vez que `pageInfo.hasPreviousPage` devuelve `false`, ha llegado a la última página. Por ejemplo:\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## Pasos siguientes\n\nPuede usar el SDK de Octokit de GitHub y el complemento `octokit/plugin-paginate-graphql` para soportar la paginación en los scripts. Para obtener más información, vea [plugin-paginate-graphql.js](https://github.com/octokit/plugin-paginate-graphql.js)."}