graphql
什么是 GraphQL
GraphQL,一个API查询语言,它不同于传统的REST API,GraphQL允许客户端按需获取数据。
前端开发者不用依赖后端的接口设计,他们可以自由地获取他们需要的数据结构。
由 Facebook 创建于 2015 年。
特点
- 请求你所要的数据
- 获取多个资源 只用一个请求
优势
相对于 Rest API,GraphQL 能精准获取、提升开发效率、减少沟通成本
问题
- 业务基建需要大量改造(收益与付出难成正比)
前后端基建都要改
- 国内前端普遍达不到全栈能力,无法自已完成graphql的后端模组
适用场景
- 一个后台对应多端(PC、APP、小程序等)
因为每个端的具体查询需求不同,每个端要写不同的api
- 数据复杂, 需要灵活组织
大体量项目
使用
服务端
定义Type及其Field
服务端需要定义各种数据类型,包括标量类型(基本数据类型)、对象类型(复杂数据类型)、接口类型、联合类型、枚举类型、输入对象类型等。
定义Schema
Schema是GraphQL的核心,它定义了客户端可以进行的操作(query、mutation、subscription)以及这些操作如何获取数据。
定义Resolve
Resolver是实际处理数据请求的函数。当客户端发起一个请求时,Resolver负责获取数据并返回给客户端。
客户端
构建请求Document
客户端在发送请求时,需要构建一个请求Document,它包括操作和片段。
待了解
1.apollo
2.服务端 直接用type-graphql,前端直接用graphql-codegen生成ts类型加hooks代码,几乎没有学习成本
1 |
|
参考
https://juejin.cn/post/7322275119593242687?searchId=2024022915161947CDB0001D31DEEF8C63
https://juejin.cn/post/7321896126311579663?searchId=2024022915161947CDB0001D31DEEF8C63
graphql
http://example.com/2024/02/29/graphql/