GraphQL学习笔记(1)

GraphQL学习笔记(1)

GragphQL的优势

1. 请求整合

eg: 在一个博客个人页中,需要请求用户,用户文章,关注者,三个请求

使用REST进行数据提取

如果用GraphQL,只需查询包含具体数据要求的单个请求

使用GraphQL进行数据获取

2. 请求数据的精准与快速迭代

REST最常见的问题之一是过度获取获取不足

  • 冗余:
    1. 页面仅需要显示带有用户名的用户列表。但是在REST API中,使用 /usersAPI,响应可能包含用户表的所有信息。
    2. 页面只想显示最后三个关注者。API/users/<id>/followers。为了能够显示所需的信息,该应用将必须向/users端点发出一个请求,命中
  • 缺少:如果没法获取新需求中的某个数据。前端只好新拉个新的接口请求,后端又不会为了一点小数据去改接口,所以又会冗余。

GraphQL解决了以上两大问题

当前端的设计和数据需求发生变化时,GraphQL灵活就展现了,它可以指定确切的数据要求在客户端进行更改,无需在服务器上进行任何额外的工作。不用给后端爸爸喊爹了😁。

3. 数据中台化

GraphQL 可以更深入的了解服务端被请求的数据,还可以对服务端处理的请求进行低级性能监视。

GraphQL 使用 解析器函数(resolver functions) 来收集客户端请求的数据。对这些解析器的性能进行监测,分析系统瓶颈。

GraphQL使用强类型系统定义API的功能。使用GraphQL架构定义语言(SDL)在schema中写下API中公开的所有类型。此架构充当客户端和服务器之间的协定,以定义客户端如何访问数据。

也就是说,一旦定义了 schema,前后端就无需联调,前端也无需等待后台接口,可以同时加速开发了

学习参考:如何使用GraghQL