Skip to main content

Límites de volumen y límites de nodo para GraphQL API

La API de GraphQL de GitHub cuenta con limitaciones para la protección contra las llamadas excesivas o abusivas a los servidores de GitHub.

Límite de nodos

Para pasar la validación del esquema, todas las llamadas de GraphQL API deben cumplir estos estándares:

  • Los clientes deben proporcionar un argumento first o last en cualquier conexión.
  • Los valores de first y last deben estar comprendidos entre 1 y 100.
  • Las llamadas individuales no pueden solicitar más de un total de 500 000 nodos.

Calcular los nodos en una llamada

Estos dos ejemplos te muestran cómo calcular los nodos totales en una llamada.

  1. Consulta simple:

    query {
      viewer {
        repositories(first: 50) {
          edges {
            repository:node {
              name
    
              issues(first: 10) {
                totalCount
                edges {
                  node {
                    title
                    bodyHTML
                  }
                }
              }
            }
          }
        }
      }
    }

    Cálculo:

    50         = 50 repositories
     +
    50 x 10  = 500 repository issues
    
                = 550 total nodes
  2. Consulta compleja:

    query {
      viewer {
        repositories(first: 50) {
          edges {
            repository:node {
              name
    
              pullRequests(first: 20) {
                edges {
                  pullRequest:node {
                    title
    
                    comments(first: 10) {
                      edges {
                        comment:node {
                          bodyHTML
                        }
                      }
                    }
                  }
                }
              }
    
              issues(first: 20) {
                totalCount
                edges {
                  issue:node {
                    title
                    bodyHTML
    
                    comments(first: 10) {
                      edges {
                        comment:node {
                          bodyHTML
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
    
        followers(first: 10) {
          edges {
            follower:node {
              login
            }
          }
        }
      }
    }

    Cálculo:

    50              = 50 repositories
     +
    50 x 20       = 1,000 pullRequests
     +
    50 x 20 x 10 = 10,000 pullRequest comments
     +
    50 x 20       = 1,000 issues
     +
    50 x 20 x 10 = 10,000 issue comments
     +
    10              = 10 followers
    
                     = 22,060 total nodes

Límite de volumen principal

Los límites de frecuencia están deshabilitados de forma predeterminada para GitHub Enterprise Server. Contacta a tu administrador de sitio para confirmar los límites de frecuencia de tu instancia.

Si eres administrador de un sitio, puedes definir los límites de volumen de la instancia. Para más información, consulta Configuración de los límites de frecuencia.

Si vas a desarrollar una aplicación para usuarios u organizaciones fuera de la instancia, se aplican los límites de volumen estándar de GitHub. Para más información, consulta Límites de volumen y límites de nodo para GraphQL API en la documentación de GitHub Free.