从各种API端点提取可用数据可能很棘手。最近,当我想编写一个脚本来收集有关GitHub上某些用户和存储库的信息时,我遇到了这个问题。在过去,我使用过GitHub的RESTful API,并将我的数据从一系列端点拼凑起来。
尽管我对GraphQL的了解有限,但我还是决定学习GitHub的GraphQL API。
在这篇博文中,我描述了如何开始为GraphQL语法验证,模式验证和突出显示配置开发环境。
我的第一步是在API上发出一些测试查询。我很快发现GraphiQL是一个不可或缺的工具。重要的是,GraphiQL使用GraphQL的内省系统来提供内联文档和验证,这意味着您不必将上下文切换回Web浏览器以查看API文档。这很棒!
我在GraphiQL中使用了查询,并开始实现脚本。
专门建立的客户端
为了进行查询,我决定使用@ octokit / graphql,它提供了一个针对GitHub的瘦客户端。 @ octokit / graphql不提供面向对象的API;没有要实例化的类或要调用的方法。该模块导出单个异步函数,该函数接受查询,查询参数和标头(包括身份验证令牌)。
这是一个例子,取自文档:
const graphql = require('@octokit/graphql');const {repository} = await graphql(`{ repository(owner:"octokit