GraphQL

描述你的数据

type Project {
  name: String
  tagline: String
  contributors: [User]
}

查询你所想要的

{
  project(name: "GraphQL") {
    tagline
  }
}

获得可预测结果

{
  "project": {
    "tagline": "A query language for APIs"
  }
}

一种 API 查询语言

GraphQL 是一种为 API 接口和查询已有数据运行时环境的查询语言. 它提供了一套完整的和易于理解的 API 接口数据描述, 给客户端权力去精准查询他们需要的数据, 而不用再去实现其他更多的代码, 使 API 接口开发变得更简单高效, 支持强大的开发者工具.

你所需要的,
就能精准得到

发送一条 GraphQL 查询预计到你的 API 接口, 精准捕获你想要的数据, 不多也不少. GraphQL 查询总能返回可预测的结果. 使用 GraphQL 的 App 因为能够不通过服务器控制他们所获取的数据, 而变得更加快速和稳定.

一条单一请求
获得诸多资源

GraphQL 查询不仅访问一个资源的属性, 还可以平滑跟踪它们之间的引用. GrahQL API 可以在一条单一请求中获取到你的 App 所需要的所有数据, 而典型的 REST API 需要从多个 URL 进行加载. 使用 GraphQL 的 App 即便在缓慢网络的手机下也依然能够很快.

描述类型系统的合法性

GraphQL API 是基于类型和字段组织的,而非终结点. 具有通过单一节点获取数据的完整能力. 它使用类型来确保 App 在请求时提供可用性和清晰有帮助的错误提示. App 可以使用类型来避免手写解析代码.

使用强大的开发者工具来加快进度

在开发编辑器中确切知道您可以从 API 请求哪些数据, 在发送查询请求之前高亮提示潜在问题, 并且有改进代码提示. GraphQL 通过改善 API 类型系统, 使构建强大工具(如 GraphiQL)更加容易.

无须版本
改进您的 API

在GraphQL API中添加新的字段和类型, 而不影响现有查询. 老化字段可以被弃用并隐藏起来. 通过使用单一的演进版本, GraphQL API可让应用程序持续访问新功能, 使用更清晰、更易维护的服务器代码.

使用你自己的数据和代码

GraphQL在整个应用程序中创建统一的API, 而不受特定存储引擎的限制. 可以使用多种语言来编写GraphQL API 改善现有的数据和代码. 您可以为类型系统中的每个字段提供函数, GraphQL会以最优的并发方式调用它们.

谁在使用 GraphQL?

Facebook的移动应用程序自2012年以来一直由GraphQL提供支持. GraphQL规范在2015年开放采用, 现在可在许多环境中使用, 并被各种规模的团队使用.

更多 GraphQL 用户