如何获取Gitlab的graphql schema 相关技术问题咨询
获取GitLab GraphQL Schema文件的可行方案
方案1:通过GraphQL内省查询直接拉取
GitLab的GraphQL API默认开启内省功能,无需额外权限就可以拉取公开版本的完整schema:
- 准备通用的GraphQL全量内省查询语句,也可以直接使用返回SDL格式的简化内省查询
- 向对应GitLab实例的GraphQL端点发送POST请求,公开实例的端点为
https://gitlab.com/api/graphql,私有部署实例替换为自己的服务地址即可,通用路径为/api/graphql - 请求头设置为
Content-Type: application/json,请求体携带内省查询的JSON payload - 拿到返回结果后,如果是JSON格式的schema描述,可以自行转换为
.graphql后缀的SDL格式文件
方案2:从GitLab源码直接导出
GitLab的schema定义完全开源,随官方代码库同步更新,你可以自行从源码生成对应版本的schema文件:
- 拉取对应版本的GitLab后端代码库到本地
- 进入代码根目录后执行预置的导出命令:
bundle exec rake gitlab:graphql:schema:dump - 命令执行完成后,就会在输出目录生成完整的
gitlab_schema.graphql文件
方案3:用GraphQL工具一键生成
如果本地安装了get-graphql-schema等GraphQL生态工具,可以直接一行命令完成拉取:get-graphql-schema https://gitlab.com/api/graphql > gitlab_schema.graphql
如果需要拉取私有部署实例或者需要鉴权的schema,在命令中添加对应鉴权请求头即可。
提示:不同版本的GitLab GraphQL schema存在差异,拉取前请确认你需要的版本,对应到正确的实例地址或者代码分支。
内容的提问来源于stack exchange,提问作者Fredrik Jansson
相关产品推荐
相关产品推荐

