扩展
Persisted Queries
使用 GraphQL queries 创建类似 REST 的预定义端点,同时享受两种 API 的优势。

Click to watch tutorial video - 08:19
在 REST API 中,我们创建多个端点,每个端点返回预定义的数据集。而在 GraphQL API 中,我们向单一端点发送任意 query,只获取所请求的数据。
Persisted queries 是普通的 GraphQL queries,但它们存储在服务器上,并通过各自的 URL 访问,从而模拟 REST 端点。它们兼具两种 API 的优势,同时规避各自的缺点:
| 优势 | 劣势 |
|---|---|
✅ 可通过 GET 或 POST 访问 | POST 访问 |
| ✅ 可在服务器或 CDN 上缓存 | |
| ✅ 安全性高:仅公开预期数据 | |
| ✅ 无数据过少/过多获取问题,单次请求即可获取全部数据 | |
| ✅ 支持项目的快速迭代 | |
| ✅ 可自动生成文档 | |
| ✅ 客户端可创建并发布 query |

Persisted query 发布后,即可通过其固定链接执行。
Persisted query 可通过 GraphiQL 客户端执行,也可直接在浏览器中执行(因为支持 GET 访问),并以 JSON 格式获取所请求的数据:

Persisted queries 可通过分类和层级进行管理。
