尝试使用一些适当的知识来使用 GitHub API v4

文件

    • GraphQL API v4 – GitHub Developer

 

    GraphQL API v4 – GitHub Developer (Enterprise)

选择一个 GraphQL 客户端

有许多能够调用GraphQL API的客户端可供选择。

    • GraphiQL

Altair GraphQL Client (Chrome extension)
GitHub GraphQL API Explorer

也许使用 GitHub API 专用的 GitHub GraphQL API Explorer 是最快捷的方法,但在这里我们尝试使用 Altair (阿尔泰尔)。

阿尔泰尔的启动

从网站上安装和运行Altair的Chrome扩展程序后,会显示如下界面。在端点输入以下内容,然后勇敢地点击“发送请求”按钮。当然,会出现认证错误。

    • GitHub https://api.github.com/graphql

GitHub Enterprise の場合 http(s)://[hostname]/api/graphql

認証失敗

確認身份

登录到GitHub,点击「Settings」>「Developer Settings」>「Personal access tokens」,再点击「Generate new token」。在「Scopes」中选择所需的API调用权限。如果设置的权限不足,在API执行时会出现授权错误,但之后还可以进行设置更改,所以一开始先随意选择即可。暂时先将权限设置为只读权限可以避免出现意外情况。

Generate access token

由于访问令牌只会显示一次,所以请记下来。

Access token generated

将生成的访问令牌设置到Altair中。点击左侧导航栏上的“设置头信息”,并输入以下内容。这样,接下来的所有请求都将发送设置的头部信息。

Header keyHeader valueAuthorizationbearer (アクセストークン)
Set headers

参考API文档

点击位于「Send Request」左侧的「Docs」,然后再点击其左侧的「Reload Docs」。如果认证成功,将会显示 API 文档。由于「Query」用于加载 API,「Mutation」用于写入 API,因此首先点击「Query」。 API 列表将会显示,您可以将鼠标悬停在其上,然后点击显示的「ADD QUERY」按钮。这样,调用该 API 的查询模板将被设定在查询面板中。

例如,用户的查询如下。


query{
  user(login: ______){
    anyPinnableItems(type: ______)
    avatarUrl(size: ______)
    bio
    bioHTML
    ...
  }
}

首先,大致上可以采用以下认识,需要填写的地方用「______」表示,如果不填写条件或不需要获取的部分可以删除,直到错误消失后再点击「Send Request」进行发送。

query {
    欲しいもの(条件) {
        欲しいもの
    }
}

实施案例

抓到了。

Query user

总结

GraphQL提供了以实际实现为基础的API规范获取方式,因此在客户端实现自动生成查询也更容易,无需查看文档就可以随意调用。GraphQL明确区分了只读的“查询(Query)”和会引发写操作的“变更(Mutation)”,所以如果只涉及查询的话,可以随意尝试。尽管GitHub有独立的API文档,但老实说不太容易理解,因此让我们利用强大的工具来理解吧!

广告
将在 10 秒后关闭
bannerAds