它们不是谁绝对先进,而是两套不同的 API 心智。
| 维度 | REST | GraphQL |
|---|---|---|
| 核心单位 | 资源与 URL | 类型与字段 |
| 请求入口 | 多个 endpoint | 通常一个 /graphql |
| 返回结构 | 服务端预定义 | 客户端按字段选择 |
| 数据聚合 | 常需多次请求 | 一次请求可跨对象关系 |
| 版本演进 | 常见 /v1 /v2 |
常见扩字段 + 废弃字段 |
| HTTP 语义 | 天然清晰 | 需要额外理解 GraphQL over HTTP |
| 缓存 | URL 级缓存自然 | 更依赖对象标识和查询策略 |
| 学习门槛 | 较低 | Schema、执行、缓存、复杂度都要懂 |
一张更直观的图:
REST
住户窗口 工单窗口 设备窗口
| | |
固定格式 固定格式 固定格式
GraphQL
智能问询总台
|
“我这次只要这 9 个字段”
|
按字段精确调度后统一回执如果你的业务只是很平的 CRUD,REST 常常更直接。
但如果你的页面总在跨资源拼装数据,GraphQL 的总台模式会非常顺手。