gRPC 是一种高性能、开源的远程过程调用(RPC)框架,支持多种编程语言。而 Postman 则是一个常用的 API 测试工具,支持多种协议和格式。本文将介绍如何在 Postman 中发送 gRPC 请求。想要学习更多关于 Postman 的知识,可访问 Postman 中文文档。
Postman 发送 gRPC 请求须知
1、请求部分包括连接到服务器和执行所选方法所需的配置。请求需要服务器 URL、服务定义和要调用的选定方法。根据 API 要求,您可能必须随请求一起传递消息负载、元数据和授权详细信息。您可能还必须根据要求配置 TLS 和其他证书。
- 服务器 URL:gRPC URL 通常以
grpc://
而不是http://
或开头https://
。在创建新请求时,您还可以通过选择 URL 字段来浏览您使用过的 URL。 - 方法: 使用方法选择器下拉列表选择需要调用的方法,下面会细说。
有效载荷:gRPC 有效载荷具有帮助服务器执行请求的项目包括:
- 消息:以 JSON 格式编写消息以随请求一起发送;
- 消息操作:
{ }
)使用高级格式使组合的 JSON 消息对外部用户而言可呈现和可读; - 授权:可以从包括 API Key、Basic auth 和 Bearer token 在内的授权类型列表中进行选择;
- 元数据:以键值对的形式随请求传递其他元数据;
- 服务定义:如果服务器支持服务器反射,则在您输入 URL 后会自动加载服务定义;否则,您将需要通过上传文件
.proto
或在 Postman 中创建 protobuf API 来手动加载服务定义; - TLS 切换:与使用 URL 结构定义调用是通过安全连接还是不安全连接执行的 HTTP 不同,
https://
对于 gRPC,客户端需要手动配置。 - 请求操作:对请求执行保存或删除的操作选项。
2、gRPC 允许四种不同类型的客户端-服务器通信模式,可用于不同的用例:
- Unary:是 HTTP 中也使用的传统请求-响应通信模式。客户端调用包含所有详细信息的请求,服务器返回一个响应。
- Client streaming:是客户端流式传输方法类型,可以从客户端发送多个消息有效负载,并且服务器以单个响应进行响应。
- Server streaming:是服务器流方法类型,当客户端调用包含所有详细信息的方法时,服务器可以使用多条消息进行响应。
- Bidirectional streaming:在双向流的情况下,客户端和服务器可以异步通信的方法。
如何在 Postman 中发送 gRPC 请求
第一步:创建 gRPC 请求
打开 Postman 工具,点击左上角的 "New" 按钮,在弹出的窗口中选择 "gRPC Request" 选项。
第二步:配置请求
在弹出的 "gRPC Request" 窗口中,输入请求的 URL 和方法。
第三步:添加 Body
在 "gRPC Request" 窗口中,点击 "Body" 选项卡。在这里,可以添加请求的参数。
第四步:发送请求
点击 "Send" 按钮,即可发送请求。在下方的 "Response" 选项卡中,可以查看服务端返回的结果。
使用 Apifox 调试 gRPC 接口
Apifox 支持基于 .proto 文件的 gRPC 调试,包括一元调用和流式调用。在创建项目时「选择 gRPC 项目」-->「导入 .proto 文件」,无需写代码即可直接调用 gRPC 接口。
在调试 gRPC 接口之前,也需要先导入作为 API 定义的 .proto 文件。如果一个 .proto 文件依赖于其他 .proto 文件,那么需要手动添加依赖关系目录。
一元调用
只需要在地址栏填写 URL 后点击「调用」按钮,即可发起一元调用。
流式调用
流式调用包含服务端流、客户端流、双向流。
在发起调用之后,你可以在 Message 标签下撰写消息并发送。Apifox 提供了一个时间线视图,按照时间顺序集中展示调用状态、发送的消息、收到的消息。点击消息之后,可以非常方便地查看消息的详情。
启用 TLS
gPRC 协议支持通过 TLS 建立安全的连接。使用 Apifox,你也可以通过点击 URL 前面的协议选择器来快速切换 TLS 的状态。
此外,Apifox 也兼容在 URL 中使用 grpcs://
来为连接启用 TLS。与之相对应,grpc://
表示不启用 TLS。
查看 Proto 文件内容
在 Apifox 中,点击左侧目录树中的 Proto,就可以查看 Proto 文件的原始内容。
查看请求和响应的参数
gRPC 使用 ProtoBuf 作为序列化格式,这意味着在发送、接收消息时,每条消息都以 ProtoBuf 格式进行传输。
与其他基于文本的序列化格式(JSON、XML)不同,ProtoBuf 是一种二进制格式,不适合人类进行书写、阅读。因此,在 Apifox 中调用 gRPC 接口时,所有消息都使用 JSON 格式来撰写、展示。在接口信息页面,可以很方便地查看以 JSON 形式表示的请求参数和响应参数。
Apifox 支持调试 Triple 接口
Triple 是一种兼容 gRPC 的 API 技术,它们都使用 gRPC 通信协议和 ProtoBuf 序列化格式。如果你的 Triple 接口是通过 .proto 文件进行定义的,而不是 Java Interface 或其他方式,那么可以使用 Apifox 的 gRPC 项目,通过加载 .proto 文件的方式来调试 Triple 接口。此时,URL 中的协议名 tri://
和 grpc://
是等价的。
比 Postman 更好用的 API 工具 —— Apifox
使用 Postman 发送 gRPC 请求是一种方便的方式,可以减少调试时间和工作量,想要用好还需要多加研究 Postman。但是 Postman 是英文版,并不支持中文。这就导致国内用户使用起来会有一定门槛,而且 Postman 的使用还有一些高级功能,例如 Mock Server、自动化测试等这些功能,需要付费购买高级版。所以更推荐另一款优秀的 API 开发和测试工具 —— Apifox。
Apifox 是个新兴的一体化 API 协作平台,可以实现 API 文档、API 调试、API Mock、 API 自动化测试,是更先进的 API 设计/开发/测试工具。Apifox 提供了一种全面的 API 管理解决方案,使用 Apifox ,你可以在一个统一的平台上设计、调试、测试以及协作你的 API, 简化了你的 API 工作流,并确保了前端、后端和测试人员之间的高效协作,同时解决了 Postman 在多个工具之间频繁切换经常会导致数据不一致和团队协作低效率的问题。
Postman 只是解决了 API 开发中的一小部分问题,Apifox 是更全面的一体化工具,越来越多的开发者开始选择 Apifox 替代 Postman,强烈推荐试用 Apifox。工具要找适合自己的,不试试怎么知道呢!试试 Apifox 。
知识扩展
了解更多 Postman 相关使用技巧: