目录#
简介#
本文译自 🔥 GraphQL Crash Course (in 10 pics!)
👇 以下是GraphQL的十张图十分钟速成! 🥳
1 - GraphQL是如何生效的#
GraphQL 是一种用于发起高弹性API请求的查询语言;
我们使用嵌套字段描述我们在单个请求中想要的内容,然后我们将准确地接收到符合我们预期的数据。
这也代表着,我们不需要通过多个小的请求来将数据缝在一起,并避免了在请求中获得多余的部分;
2 - GraphQL的数据请求与交换流程#
GraphQL是一种语言标准而不是一个library;
我们以POST或GET请求的形式发送结构化查询,服务器检查它们在预定义的Schema中是否有效,然后运行相应的解析函数来执行操作,最后将数据返回给客户端。
3 - GraphQL Schema#
GraphQL Schema定义了有效查询的结构和查询的返回数据类型,它是客户端和服务器用来通信的协议。
它们是强类型的,可以嵌套;除了最常见的 “对象” 类型之外,该模式还支持union、enum、interfaces等。
There are 3 operation types in GraphQL - query, mutation, or subscription. query is the most commonly used operation.
GraphQL中有3种操作类型 — query
、mutation
和 subscription
。query
是最常用的操作。
4 - 参数#
GraphQL查询允许我们传入参数以获得过滤后的结果,所有有效的参数的定义都在 Schema 中。
在后端,我们需要定义相应的解析器来满足这些条件查询。
注意: GraphQL在SQL中没有内置比较运算符,类似 > 或TOP, LIMIT这样的函数!这些附加功能必须在解析器中实现。不过不用担心,大多数GraphQL框架已经附带了这些工具类解析器。
5 - Alias 别名#
有时在查询中,我们会多次选择相同的字段,但每次都使用不同的参数(如图片中的参数)。这将导致命名冲突,因此我们需要为字段分配别名。
别名可以添加到任何字段。
6 - Fragment 帧#
我们可以将 “子字段” 封装到帧中,并在帧中使用spread操作符来复用它们。当我们一次又一次地选择相同的字段时,它非常有用,可以将它看作是GraphQL字段名的JS对象,可以对其进行解构;
帧与HTTP请求时携带的查询字段中的主要操作一起发送到服务器。
7 - Variable 变量#
使用GraphQL变量可以方便地模块化和共享/复用预先编写的查询代码;我们在查询开始时声明它们,它们还可以分配默认值;变量可以嵌套,就和普通的JSON对象一样。
注意到第2部分的图片中的GraphQL请求有效载荷了吗?这就是变量字段的作用。
8 - Interface 接口#
GraphQL Scheme中的Interface允许我们以OOP的方式灵活地创建和使用复杂的数据类型。
类型可以实现一个或多个接口。
当返回类型是接口时,我们可以使用关键字 on
有条件地访问特定实现的字段。
9 - Mutation 数据变动#
与查询相反,Mutation 是用来更改服务器上的数据用的。例如创建帐户、生成验证令牌或添加数据项。
和查询一样,我们可以为一个 Mutation 提供参数。该Mutation操作会返回变动后的值,所以不要忘记填写我们需要的字段;
10 - Subscription 订阅#
与通过HTTP发送和接收查询不同,GraphQL还有一个用于创建WebSocket连接的 Subscription 操作类型,因此服务器可以将更新主动地推送到客户端。
特别适用于💹股票市场应用或💬即时通讯应用程序。
完。