Skip to main content

关于 GraphQL API

GitHub GraphQL API 具有灵活性,而且能够准确定义您要获取的数据。

概述

下面是一些帮助您启动和运行 GraphQL API 的快速链接:

  •         [Authentication](/graphql/guides/forming-calls-with-graphql#authenticating-with-graphql)
    
  •         [根终结点](/graphql/guides/forming-calls-with-graphql#the-graphql-endpoint)
    
  •           [架构自省](/graphql/guides/introduction-to-graphql#discovering-the-graphql-api)
    
  •         [速率限制](/graphql/overview/resource-limitations)
    
  • 从 REST 迁移

若要详细了解 GitHub 的 API,请参阅“比较GitHub的 REST API 和 GraphQL API”。

关于 GraphQL

          [GraphQL](https://graphql.org/) 数据查询语言是:

* ** 规范。** 该规范确定 API 服务器上的 schema的有效性。 架构可确定客户端调用的有效性。

  •         **
            [强类型化](#about-the-graphql-schema-reference)。** 架构可定义 API 的类型系统和所有对象关系。
    
  •           **              [自省](/graphql/guides/introduction-to-graphql#discovering-the-graphql-api)。** 客户端可查询架构,了解关于架构的详细信息。
    
  •         **
            [Hierarchical](/graphql/guides/forming-calls-with-graphql).** GraphQL 调用的形式可反映它返回的 JSON 数据的形式。               [嵌套字段](/graphql/guides/migrating-from-rest-to-graphql#example-nesting)允许你在一次往返请求中仅查询并获取指定的数据。
    
  •         **应用程序层。** GraphQL 不是存储模型或数据库查询语言。 
            _graph_是指架构中定义的图形结构,其中[nodes](/graphql/guides/introduction-to-graphql#node)定义对象和[edges](/graphql/guides/introduction-to-graphql#edge)定义对象之间的关系。 API 可以根据架构定义遍历和返回应用数据,与数据的存储方式无关。
    

为何GitHub使用 GraphQL

GitHub选择了 GraphQL,因为它为集成商提供了更大的灵活性。 能够精确定义你需要的数据—,并且_仅_获取你需要的数据—,相比传统的 REST API 终结点具有显著优势。 GraphQL 可用于将多个 REST 请求替换为单个调用,以获取指定的数据。

有关 GitHub 对 GraphQL 的投资的更多详情,请参阅原始 announcement 博客文章

关于 GraphQL 架构引用

边栏中的文档是从 GitHub GraphQL 架构生成的。 所有调用均根据架构验证和执行。 使用这些文档查找您可以调用的数据:

有关身份验证和速率限制详细信息等其他信息,请查看 guides

请求支持

有关 GitHub Apps、OAuth apps 和 API 开发的问题、漏洞报告和讨论,请访问 GitHub 社区讨论中的 API 和 Webhook 类别。 讨论由 GitHub 工作人员审查和维护,由 GitHub 社区回答。

请考虑使用联系人表单直接联系 GitHub 支持

  • GitHub 工作人员保证响应
  • 涉及敏感数据或私人问题的支持请求
  • 功能请求
  • 关于 GitHub 产品的反馈

如果观察到意外故障,可以使用 githubstatus.comGitHub 状态 API 来检查影响 API 的事件。