基本概念

一种Web API查询语言,被认为是REST的替代品。

GraphQL

  • 查询语言: GraphQL 提供了一种灵活的查询语言,允许客户端以声明性方式请求需要的数据,而不是像 REST 一样由服务器提供固定的资源。
  • 单一端点: 在 GraphQL 中,通常只有一个端点,客户端可以发送一个查询请求来获取它需要的数据。这与 REST 不同,REST 风格的 API 通常有多个端点用于不同的资源。
  • 精确获取所需数据: 客户端可以精确地指定所需的数据结构和字段,不会返回不需要的数据,避免了 over-fetching 和 under-fetching 的问题。
  • 速度、灵活:旨在提高 API 速度和灵活性,并便于开发人员使用。
  • 强类型: GraphQL 有明确的类型系统,定义了可以查询的数据结构和字段,使得交互更加明确和严谨。

三种操作

  • 读(Query):
  • 写(Mutation):改变服务端状态
  • 事件观察(Subscription):指定事件触发,立刻推送,利于实时应用

对比REST

只有一个端点,可避免获取不足和过度获取

image.png