GraphQL API

原文:https://docs.gitlab.com/ee/api/graphql/

GraphQL API

版本历史

  • 在 GitLab 11.0 中引入 (由功能标志graphql启用).
  • 始终在 GitLab 12.1 中启用 .

Getting Started

有关 GitLab GraphQL API 的新知识,请参见 GitLab GraphQL API 入门 .

Quick Reference

GraphiQL

使用交互式GraphiQL浏览器浏览 GraphQL API,或在https://<your-gitlab-site.com>/-/graphql-explorer上的自管理 GitLab 实例上https://<your-gitlab-site.com>/-/graphql-explorer .

有关 GraphiQL Explorer 的更多信息,请参见GitLab GraphQL 概述 .

What is GraphQL?

GraphQL是 API 的查询语言,它允许客户端准确地请求他们所需的数据,从而有可能在有限数量的请求中获得所有必需的数据.

可以以类型的形式描述 GraphQL 数据(字段),从而允许客户端使用客户端 GraphQL 库来使用 API​​并避免手动解析.

由于没有固定的端点和数据模型,因此可以在不进行重大更改的情况下将新功能添加到 API. 这使我们可以拥有GraphQL 文档所述的无版本 API.

Vision

我们希望 GraphQL API 是与 GitLab 进行编程交互的主要方式. 为此,它需要全面覆盖-REST API 中可能的一切在 GraphQL API 中也应该可行.

为了帮助我们实现这一愿景,前端应优先使用 GraphQL 而不是 REST API 的新功能.

There are no plans to deprecate the REST API. To reduce the technical burden of supporting two APIs in parallel, they should share implementations as much as possible.

Available queries

GraphQL API 在根级别包含以下查询:

  1. project :项目信息及其许多关联,例如问题和合并请求.
  2. group :基本组信息和史诗 目前受支持.
  3. user :有关特定用户的信息.
  4. namespace :在名称空间内,也可以提取projects .
  5. currentUser :有关当前登录用户的信息.
  6. users :有关用户集合的信息.
  7. metaData :有关 GitLab 和 GraphQL API 的元数据.
  8. snippets :当前登录用户可见的snippets .

新的关联和根级别对象正在不断添加. 有关最新信息,请参见《 GraphQL API 参考 》.

根级查询在app/graphql/types/query_type.rb .

Multiplex queries

GitLab 支持使用apollo-link-batch-http 将查询批量处理为单个请求. GitLab 在后端使用的库GraphQL Ruby也提供了有关多路查询的更多信息.

Reference

GitLab 的 GraphQL 参考可用 .

它是从 GitLab 的 GraphQL 模式自动生成的,并嵌入到 Markdown 文件中.

机器可读版本也可用: