基本概念
GraphQL:
- 查询语言: GraphQL 提供了一种灵活的查询语言,允许客户端以声明性方式请求需要的数据,而不是像 REST 一样由服务器提供固定的资源。
- 单一端点: 在 GraphQL 中,通常只有一个端点,客户端可以发送一个查询请求来获取它需要的数据。这与 REST 不同,REST 风格的 API 通常有多个端点用于不同的资源。
- 精确获取所需数据: 客户端可以精确地指定所需的数据结构和字段,不会返回不需要的数据,避免了 over-fetching 和 under-fetching 的问题。
- 速度、灵活:旨在提高 API 速度和灵活性,并便于开发人员使用。
- 强类型: GraphQL 有明确的类型系统,定义了可以查询的数据结构和字段,使得交互更加明确和严谨。
三种操作
- 读(Query):
- 写(Mutation):改变服务端状态
- 事件观察(Subscription):指定事件触发,立刻推送,利于实时应用
对比REST
只有一个端点,可避免获取不足和过度获取
