Review
- 2020/04/06
- 2023/02/18
一、简介 #
一种用于 API 的==查询语言,是一个规范==
GraphQL 既是一种==用于 API 的查询语言也是一个满足你数据查询的运行时==。 GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。
API服务对比:GraphQL vs RESTful #
RESTful
- 简单易懂
- 快速搭建
- 在数据聚合方面有很大的劣势
GraphQL
- 专注数据聚合,需要什么就返回什么
框架 #
Server
- apollo-server ⭐️⭐️⭐️
- GraphQL.js ⭐️⭐️⭐️⭐️⭐️
- express-graphql
- koa-graphql
- graphql-helix
- graphql-yoga ⭐️⭐️⭐️⭐️⭐️
Client
- apollo-client
- apollo-server-express
- Relay
- graphql-request
- amplify-js
- lokka
- nanogql
- gq-loader
- grafoo
- urql
- graphql-hooks
- graphqurl
最佳实践 #
- GraphQL 通常通过单入口来提供 HTTP 服务的完整功能
- 压缩:Accept-Encoding: gzip
- 无版本控制
- 分页
- 缓存