关于 GraphQL 资源管理器
GraphQL 资源管理器 是 GraphiQL 的一个实例,它是一个“图形化交互式浏览器内 GraphQL IDE”。
查询自动完成
您可以使用查询自动完成功能来帮助您构建查询。在主窗格中,在查询的花括号内,使用control+space 或 shift+space 显示自动完成菜单。
访问侧边栏文档
GraphQL 模式中的所有类型都包含一个编译到文档中的description
字段。资源管理器页面右侧的可折叠**文档**窗格允许您浏览有关类型系统的文档。文档会自动更新,并将删除即将关闭的字段。
**文档**侧边栏包含与从“GitHub GraphQL API 文档”中模式自动生成的相同内容,尽管在某些地方格式不同。
使用变量窗格
一些示例调用包括这样编写的变量
query($number_of_repos:Int!){
viewer {
name
repositories(last: $number_of_repos) {
nodes {
name
}
}
}
}
variables {
"number_of_repos": 3
}
这是使用curl
命令中的POST
请求提交调用的正确格式(只要您转义换行符)。
如果您想在资源管理器中运行调用,请在主窗格中输入query
段,在下面的**查询变量**窗格中输入变量。省略资源管理器中的“variables”一词。
{
"number_of_repos": 3
}
使用 Altair GraphQL 客户端 IDE
有很多开源 GraphQL 客户端 IDE。例如,您可以使用 Altair 访问 GitHub 的 GraphQL API。要使用 Altair 访问 GraphQL API,请从altair-graphql/altair下载并安装它。然后,按照以下配置步骤操作。
配置 Altair
- 获取访问令牌。
- 启动 Altair。
- 在左侧边栏中,单击 Altair 徽标下方的**设置标头**。将打开一个新窗口。
- 在“标头键”字段中,输入
Authorization
。 - 在“标头值”字段中,输入
Bearer TOKEN
,将TOKEN
替换为第一步中的令牌。 - 单击窗口右下角的**保存**以保存授权标头。
- 在“GraphQL 端点”字段中,输入您的 GraphQL URL,例如
https://api.github.com/graphql
。 - 要加载 GitHub GraphQL 模式,请下载公共模式。
- 在 Altair 中,单击右上角的**文档**,然后单击三个点和**加载模式...**
- 选择您在前面步骤中下载的公共模式文件。
注意
有关为什么POST
是该方法的更多信息,请参阅“使用 GraphQL 进行表单调用”。
您可以通过查询自己来测试您的访问权限
query {
viewer {
login
}
}
如果一切正常,这将显示您的登录信息。您可以开始进行查询了。
请求支持
如有关于 GitHub Apps、OAuth Apps 和 API 开发的问题、错误报告和讨论,请浏览GitHub 社区讨论中的 API 和 Webhook 类别。这些讨论由 GitHub 员工审核和维护,并由 GitHub 社区解答。
考虑直接使用联系表单联系GitHub 支持,以获取:
- GitHub 员工的保证回复
- 涉及敏感数据或私人问题的支持请求
- 功能请求
- 关于 GitHub 产品的反馈
故障排除错误
因为 GraphQL 是自省的,所以资源管理器支持:
- 了解当前模式的智能自动补全
- 键入时的验证错误预览
如果您输入的查询格式不正确或未通过模式验证,则弹出窗口会警告您出现错误。如果您运行查询,则错误将返回响应窗格中。
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 查询的部分内容可能会成功,而其他部分可能会失败。