什么是 GraphQL?

GraphQL 是 Facebook 开源的查询语言,让前端精确要数据、不再被 REST 过度获取或多次请求困扰。本文讲清概念、与 REST 的区别、优缺点与适用场景。

📅 更新于 2026-07-22 ⏱ 约 2 分钟阅读 🏷 学习中心
免费试用 YesApi Pro 查看全部定价 →
📌 核心结论
GraphQL 是 API 查询语言:客户端用一份声明式查询精确取所需字段,服务端按 Schema 返回,解决 REST 的「过度获取/获取不足」与多轮请求问题;但它也有缓存与复杂度代价,并非 REST 的替代品。
📑 本文目录
  1. 定义
  2. 核心概念
  3. 与REST区别
  4. 优缺点
  5. 何时用
  6. 常见问题
⭐ 编辑推荐

想要规范 REST API?

YesApi Pro 低代码生成规范化 REST API,自带文档、鉴权与限流。

01

一、什么是 GraphQL

GraphQL 是 Facebook 于 2015 年开源的API 查询语言与运行时。客户端发送一份描述「要什么数据」的查询,服务端按 Schema 精确返回,不多不少。

02

二、核心概念

  • Schema:用 SDL 定义类型与字段,是前后端契约
  • Query:查询数据(类比 GET)
  • Mutation:修改数据(类比 POST/PUT/DELETE)
  • Resolver:每个字段背后的取数函数
03

三、与 REST 的区别

维度RESTGraphQL
取数固定端点,可能过多/过少一次查询精确取所需
请求轮次多端点多次请求单请求聚合
版本常需 /v1 /v2靠新增字段演进,少版本
04

四、优缺点

优点:前端自助取数、减少请求数、强类型契约。缺点:缓存不如 REST 简单(单端点)、易写出深层/低效查询(N+1)、服务端实现更复杂、文件上传等非查询场景不自然。

05

五、何时用

前端多变、聚合多数据源、移动端省流量 → 适合 GraphQL;简单 CRUD、强缓存、公开开放 API → REST 更顺手。也可并存:用 GraphQL 聚合,后端仍由 REST 服务提供。

YesApi Java Pro 旗舰版
¥33,800/套·永久
不含源码·私有部署
立即购买
含源码版
¥49,800/套·永久
含完整源码·可二次开发
立即购买
招投标/信创版
¥65,800起·永久
含标书/软著/中标案例
立即购买

需要快速落地?

YesApi Pro 私有部署、源码交付、当天上线,帮您把方案变为现实。

立即预约演示 →

常见问题

不会。两者各有适用场景,很多团队并存使用。

不需要。Resolver 可对接任意数据源(REST、DB、RPC)。

因单端点,通常需基于查询体做持久化查询或网关层缓存,比 REST 的 URL 缓存复杂。

YesApi Pro 主要产出规范化 REST API;若需 GraphQL,可在网关前加一层 GraphQL 聚合服务。
📚

继续阅读