跳至主要内容

使用 Explorer

你可以使用 GraphQL Explorer 在真正的 GitHub 数据上运行查询,GraphQL Explorer 是浏览器中一个集成了文档、语法高亮和验证错误的集成开发环境。

关于 GraphQL Explorer

GraphQL ExplorerGraphiQL 的一个实例,后者是一个“图形交互式浏览器内 GraphQL IDE”。

查询自动完成

你可以使用查询自动完成来帮助你构建查询。在主窗格中,在查询的花括号内,使用 control+spaceshift+space 来显示自动完成菜单。

访问侧边栏文档

GraphQL 模式中的所有类型都包含一个编译成文档的 description 字段。Explorer 页面右侧的可折叠 文档窗格允许你浏览有关类型系统的文档。文档会自动更新,并会删除已弃用的字段。

文档侧边栏包含与根据模式在“GitHub GraphQL API 文档”下自动生成的内容相同的内容,尽管在某些地方格式不同。

使用变量窗格

一些示例调用包括以如下方式编写的变量

query($number_of_repos:Int!){
  viewer {
    name
     repositories(last: $number_of_repos) {
       nodes {
         name
       }
     }
   }
}
variables {
   "number_of_repos": 3
}

这是使用 POST 请求在 curl 命令中提交调用的正确格式(只要你转义换行符)。

如果您想在 Explorer 中运行调用,请在主窗格中输入 query 段,并在其下方的 查询变量 窗格中输入变量。从 Explorer 中省略单词 variables

{
   "number_of_repos": 3
}

使用 Altair GraphQL 客户端 IDE

有很多开源 GraphQL 客户端 IDE。例如,您可以使用 Altair 访问 GitHub 的 GraphQL API。要使用 Altair 访问 GraphQL API,请从 altair-graphql/altair 下载并安装它。然后,按照以下配置步骤操作。

配置 Altair

  1. 获取 访问令牌
  2. 启动 Altair。
  3. 在左侧边栏中,Altair 徽标下方,单击 设置标头。将打开一个新窗口。
  4. 在“标头键”字段中,输入 Authorization
  5. 在“标头值”字段中,输入 Bearer TOKEN,用您在第一步中获取的令牌替换 TOKEN
  6. 单击窗口右下角的 保存 以保存您的授权标头。
  7. 在“GraphQL 端点”字段中,输入 https://api.github.com/graphql
  8. 要加载 GitHub GraphQL 架构,请下载 公共架构
  9. 在 Altair 中,单击右上角的 文档,然后单击三个点和 加载架构...
  10. 选择您在较早步骤中下载的公共架构文件。

注意:有关 POST 为何是方法的更多信息,请参阅“使用 GraphQL 形成调用”。

您可以通过查询自己来测试您的访问权限

query {
  viewer {
    login
  }
}

如果一切正常,这将显示您的登录名。您已准备好开始进行查询。

请求支持

对于有关 GitHub 应用、OAuth 应用和 API 开发的问题、错误报告和讨论,请浏览 GitHub 社区讨论中的 API 和 Webhook 类别。讨论由 GitHub 员工主持和维护,并由 GitHub 社区回答。

考虑直接使用联系表格联系 GitHub 支持,以获得

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

故障排除错误

由于 GraphQL 内省,因此 Explorer 支持

  • 了解当前架构的智能类型提示
  • 输入时预览验证错误

如果你输入的查询格式不正确或未通过 架构验证,则会弹出一个警告,提示你错误。如果你运行查询,则错误会返回到响应窗格中。

GraphQL 响应包含几个键:一个 data 哈希和一个 errors 数组。

{
  "data": null,
  "errors": [
    {
      "message": "Objects must have selections (field 'nodes' returns Repository but has no selections)",
      "locations": [
        {
          "line": 5,
          "column": 8
        }
      ]
    }
  ]
}

你可能会遇到与架构无关的意外错误。如果发生这种情况,该消息将包含一个引用代码,你可以在报告问题时使用该代码

{
  "data": null,
  "errors": [
    {
      "message": "Something went wrong while executing your query. This is most likely a GitHub bug. Please include \"7571:3FF6:552G94B:69F45B7:5913BBEQ\" when reporting this issue."
    }
  ]
}

注意: GitHub 建议在生产环境中使用数据之前检查错误。在 GraphQL 中,故障并非完全的:GraphQL 查询的部分内容可能会成功,而其他部分可能会失败。