Skip to main content

Enterprise Server 3.15 目前作为候选发布提供。

GraphQL API 的速率限制和节点限制

GitHub GraphQL API 利用限制防止过度或胡乱调用 GitHub 的服务器。

节点限制

若要通过架构验证,所有 GraphQL API 调用都必须满足以下标准:

  • 客户端必须在任何连接上提供 firstlast 参数。
  • firstlast 的值必须在 1-100 以内。
  • 单个调用请求的节点总数不能超过 500,000。

计算调用中的节点

下面两个示例显示如何计算调用中的节点总数。

  1. 简单查询:

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

    计算:

    50         = 50 repositories
     +
    50 x 10  = 500 repository issues
    
                = 550 total nodes
  2. 复杂查询:

    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
            }
          }
        }
      }
    }

    计算:

    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

主要速率限制

默认禁用 GitHub Enterprise Server 的速率限制。 请与站点管理员联系,以确认实例的速率限制。

如果你是网站管理员,可以为实例设置速率限制。 有关详细信息,请参阅“配置速率限制”。

如果要为实例外部的用户或组织开发应用,则应用标准 GitHub 速率限制。 有关详细信息,请参阅 GitHub Free 文档中的“GraphQL API 的速率限制和节点限制”。