什么是 GraphQL?

与 GraphQL 同样备受关注的,还有谷歌一手打造的开源框架 gRPC。自 2015 年问世以来,它迅速成为现代分布式系统中不可或缺的关键技术。gRPC 基于 HTTP/2 构建,因此也继承了 HTTP/2 的诸多核心优势。
- 二进制分帧传输,数据效率更高
- 多路复用支持同一个连接并行处理多个请求
- 服务端推送功能,有效减少轮询操作
- 头部压缩技术,显著降低带宽消耗
gRPC 是如何传输的?

从上图可以清楚看到,gRPC 的传输流程并不复杂:客户端侧的 Stub 通过 gRPC Core 库发起请求,先将数据序列化为 Protobuf 消息格式,随后通过网络传送到服务端。服务端收到后,Stub 负责将这份 Protobuf 数据反序列化,还原为原始请求对象,再交由业务逻辑进行处理。处理完成后,结果同样经过序列化返回给客户端。如此一来一往,一次完整的接口调用便顺利完成。
使用 Apifox 发送 GraphQL
Apifox 在调试 GraphQL 接口时同样非常便捷。首先创建一个 HTTP 项目。

随后在地址栏填入 GraphQL 的服务地址,直接发起请求即可完成调试。

使用 Apifox 发送 gRPC 接口
对于 gRPC 接口,Apifox 同样提供了完善的支持。它能够直接基于 .proto 文件进行调试,支持一元调用与流式调用两种模式。创建项目时选择“gRPC 项目”,然后导入 .proto 文件,无需编写任何代码即可启动调试。

调试前,需先导入作为 API 定义的 .proto 文件。如果某个文件还依赖其他 .proto 文件,则需要手动添加依赖关系目录。

一元调用
一元调用是最简单的方式:填好 URL,点击“调用”即可完成一次请求。

流式调用
流式调用包含服务端流、客户端流和双向流三种类型。发起调用后,可在 Message 标签下编写消息并发送。Apifox 会按照时间线集中展示调用状态、发送和接收的消息详情。点击任意消息,还能查看完整的详细信息,整个过程一目了然。

