GraphQL LogoGraphQL

描述您的数据

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

询问您想要的内容

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

获得可预测的结果

{
"project": {
"tagline": "A query language for APIs"
}
}
GraphQLConf logo
GraphQL 基金会举办的官方 GraphQL 大会2023 年 9 月 19 日至 21 日 • 加利福尼亚州旧金山湾区

一种用于 API 的查询语言

GraphQL 是一种用于 API 的查询语言,也是一个运行时,用于使用您现有的数据来满足这些查询。GraphQL 提供了对 API 中数据的完整且易于理解的描述,使客户端能够准确地请求他们需要的内容,而不会更多,使随着时间的推移更容易演化 API,并使强大的开发人员工具成为可能。

询问您需要的内容,
获得确切的内容

向您的 API 发送 GraphQL 查询,并获得您需要的准确内容,不多也不少。GraphQL 查询始终返回可预测的结果。使用 GraphQL 的应用程序速度快且稳定,因为它们控制获取的数据,而不是服务器。

获取多个资源
在一个请求中

GraphQL 查询不仅访问一个资源的属性,而且还平滑地跟踪它们之间的引用。虽然典型的 REST API 需要从多个 URL 加载,但 GraphQL API 在单个请求中获取应用程序所需的所有数据。使用 GraphQL 的应用程序即使在缓慢的移动网络连接下也能快速运行。

使用类型系统
描述可能的操作

GraphQL API 是根据类型和字段组织的,而不是端点。从单个端点访问数据的全部功能。GraphQL 使用类型来确保应用程序只请求可能的操作,并提供清晰且有用的错误。应用程序可以使用类型来避免编写手动解析代码。

使用
强大的开发人员工具

在不离开编辑器的情况下准确地了解您可以从 API 请求哪些数据,在发送查询之前突出显示潜在问题,并利用改进的代码智能。GraphQL 通过利用 API 的类型系统,使构建像 GraphiQL 这样的强大工具变得容易。

演化您的 API
无版本

在不影响现有查询的情况下,向您的 GraphQL API 添加新字段和类型。过时的字段可以被弃用并从工具中隐藏。通过使用单个不断发展的版本,GraphQL API 使应用程序能够持续访问新功能,并鼓励更简洁、更易于维护的服务器代码。

自带
数据和代码

GraphQL 在整个应用程序中创建统一的 API,而不受特定存储引擎的限制。使用多种语言提供的 GraphQL 引擎,编写利用现有数据和代码的 GraphQL API。您为类型系统中的每个字段提供函数,GraphQL 以最佳并发性调用这些函数。

谁在使用 GraphQL?

Facebook 的移动应用程序自 2012 年起就由 GraphQL 提供支持。GraphQL 规范于 2015 年开源,现在已在许多环境中可用,并被各种规模的团队使用。

更多 GraphQL 用户