← [ BACK_TO_NOTES ]

GraphQL 的历史与生态定位

梳理 GraphQL 从 2012 年 Facebook 移动端内部方案到 2015 年开放、基金会治理及当前 API 生态中的位置,理解它为何出现以及为何没有取代 REST。

#synthesis #growing #api #graphql

[!info] related notes

  • 所属 MOC: graphql-moc
  • 相关概念:
  • 易混淆概念:
  • 相关资源:

GraphQL 的历史与生态定位

为什么 GraphQL 会出现

GraphQL 不是为了“发明另一种 HTTP 语法”而出现,而是源于 Facebook 在 2012 年重写原生移动应用时遇到的数据获取问题。

当时移动端页面往往需要把用户、动态、评论、头像等多种关联数据组合成一个视图。固定 REST endpoint 很容易出现:

一个 endpoint 返回太多字段
或
一个页面需要连续请求多个 endpoint

Facebook 因而设计了一套新的数据查询模型:客户端直接描述当前界面需要的数据形状,服务端通过统一的类型系统和执行引擎满足该查询。

时间线

2012
Facebook 内部创建 GraphQL
用于原生移动应用的数据获取

2015
开始建设开放标准
发布公开规范与参考实现
GraphQL 进入开源社区

2017
规范采用 OWFa 1.0 授权

2019
GraphQL Foundation / Specification Project
成为更中立的社区治理体系

2025
GraphQL 发布 September 2025 规范版本
首个公开规范已满十年

最早的规范仓库长期列出的核心贡献者包括 Lee Byron、Nicholas (Nick) Schrock、Daniel (Dan) Schafer。GraphQL 后续已从 Facebook 内部技术演变为由社区和 GraphQL Foundation 治理的开放规范。

它解决的原始问题

GraphQL 的出发点可以浓缩为:

让 UI 的数据需求直接表达成查询,而不是迫使 UI 适应服务端预先切好的 endpoint。

因此它天然强调:

  • 强类型 Schema;
  • 查询结构与响应结构相似;
  • 客户端字段选择;
  • 关联对象的组合查询;
  • API 的渐进演进。

当前生态位置

GraphQL 已经是成熟 API 技术,但并没有取代 REST。

Postman 2025 State of the API 调查中,REST 仍是最常见的 API 方式(93%),GraphQL 约为 33%。这更适合解读为:

REST = 默认、广泛的基础方案
GraphQL = 在复杂数据组合场景中成熟的重要补充

GraphQL 仍被大型生产 API 使用。例如 GitHub 当前同时提供 REST 和 GraphQL API,并明确把 GraphQL 的“精确选择所需数据”作为其优势。

因此今天学习 GraphQL 的价值不是押注“以后所有 API 都会变成 GraphQL”,而是掌握另一种成熟的 API contract / data-fetching / cache / resolver 心智模型。

为什么它没有取代 REST

GraphQL 消除了某些客户端复杂度,却产生了新的服务端和客户端治理成本:

endpoint / DTO 组合复杂度下降
        ↓
Schema / Resolver / Query Cost / Cache
复杂度上升

简单 CRUD、文件下载、HTTP/CDN 缓存语义明显的 API,REST 常常更直接。

复杂产品页面、多客户端差异化取数、强类型 schema tooling 等场景,GraphQL 的收益更明显。

资料来源

创建于 2026/9/11 更新于 2026/9/16
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本