使用 gRPC 请求接口
Postman 中的 gRPC 请求包括各种工具、视图和控件,可帮助你有效且高效地使用和测试 gRPC 服务。本主题重点介绍请求接口的各个部分以及如何使用它。
创建新请求
通过在边栏中选择新建来创建新的 gRPC 请求。从列表中选择gRPC 以在新选项卡中打开一个空白的 gRPC 请求。
请求部分
请求部分包括连接到服务器和执行所选方法所需的配置。请求需要服务器 URL、服务定义和要调用的选定方法。根据 API 要求,你可能必须随请求一起传递消息负载、元数据和授权详细信息。你可能还必须根据要求配置 TLS 和其他证书。
协议菜单- 你可以更改新请求的协议。在边栏中选择新建,然后选择一个请求协议,或选择**+**打开一个新选项卡。选择请求名称左侧的协议下拉菜单,然后选择不同的请求协议。
选择保存后,你无法更改请求协议。
服务器 URL - 定义托管服务的端点。gRPC URL 通常以
grpc://
而不是http://
或开头https://
。在创建新请求时,你还可以通过选择 URL 字段来浏览你使用过的 URL。如果你在同一个端点上测试多个方法,这有助于你更快地创建请求。方法- 使用方法选择器下拉列表选择你希望调用的方法。方法列表由服务定义填充。有关方法类型的更多详细信息,请参阅 调用不同类型的方法 部分。
有效载荷- gRPC 有效载荷具有帮助服务器执行请求的项目:
- 消息- 在此处以 JSON 格式编写消息以随请求一起发送。服务器使用此消息执行适当的操作并给你一个响应作为回报。
- 消息操作- Beautify按钮 (
{ }
) 使用高级格式使组合的 JSON 消息对外部用户而言可呈现和可读。一旦你选择了要调用的方法,生成示例消息按钮就会使用模式创建示例消息。 - 授权- 在此处传递服务器将用于授权连接的凭据。你可以从包括 API Key、Basic auth 和 Bearer token 在内的授权类型列表中进行选择。详细了解 授权请求 。
- 元数据- 以键值对的形式随请求传递其他元数据。客户端使用此元数据来提供有关对服务器的调用的更多信息。
- 服务定义——服务定义使客户端了解服务器支持的所有服务和方法,以及消息负载结构、支持的字段和数据类型。如果服务器支持服务器反射,则在你输入 URL 后会自动加载服务定义。否则,你将需要通过上传文件
.proto
或在 Postman 中创建 protobuf API 来手动加载服务定义。 了解有关使用服务定义的 更多信息。
脚本- Postman 具有强大的脚本环境,允许你在 gRPC 请求中添加 JavaScript 代码(脚本)。你可以使用脚本编写 API 测试,通过登录到 Postman 控制台来调试你的请求,或者动态读取或更新 变量 的值。详细了解 gRPC 请求中的脚本 。
TLS 切换
http://
- 与使用 URL 结构(对于不安全,对于安全)定义调用是通过安全连接还是不安全连接执行的 HTTP 不同,https://
对于 gRPC,客户端需要手动配置它。 根据服务器要求,你可以选择使用 URL 前的锁图标通过安全或不安全的连接调用该方法 。调用按钮- 输入服务器 URL、选择要调用的方法并定义负载后,选择调用以调用请求并从服务器获取响应。
请求名称- 如果你想测试具有不同配置的多个请求,你可以分别命名每个请求并将它们保存到一个集合中。保存到集合中可以让你稍后重用这些请求并与他人共享。
请求操作- 请求操作提供有关你可以对请求执行的操作的选项:
- 保存- 将请求保存到一个集合中,以便你以后可以重用它或与他人共享。由于 WebSocket 和 gRPC 请求具有与 HTTP 请求不同的特性,因此当它们被添加到集合中时,会导致集合处于“测试”状态并具有某些限制。处于此状态时,集合可以包含 WebSocket 或 gRPC 请求,但不能包含 HTTP 请求。也不支持与集合相关的一些功能。
- 删除- 从集合中删除现有请求。
调用不同类型的方法
gRPC 允许四种不同类型的客户端-服务器通信模式,可用于不同的用例:
- 一元
- 客户端流
- 服务器串流
- 双向流
调用一元方法
一元是 HTTP 中也使用的传统请求-响应通信模式。客户端调用包含所有详细信息的请求,服务器返回一个响应。
要调用一元请求,请从 Method selection下拉列表中选择方法,添加详细信息并选择Invoke。服务器处理发送的信息并返回响应。
调用客户端流方法
使用客户端流式传输方法类型,你可以从客户端发送多个消息有效负载,并且服务器以单个响应进行响应。
要调用客户端流方法,请从 Method selection下拉列表中选择方法,输入详细信息并选择Invoke。这会将 gRPC 请求置于持久流状态,你可以在其中发送多条消息。完成后,选择End streaming。服务器然后处理传递的所有信息并返回响应。
调用服务器流方法
使用服务器流方法类型,当客户端调用包含所有详细信息的方法时,服务器可以使用多条消息进行响应。
要调用服务器流方法,请从“方法选择”下拉列表中选择方法,输入详细信息,然后选择“调用”。请求进入持久的“流”状态,服务器的响应开始出现在响应区域的底部。根据用例,流会在服务器流式传输完所有消息后自动关闭。你可以通过选择 URL 栏旁边的取消来手动结束流。
调用双向流方法
在双向流的情况下,客户端和服务器可以异步通信。
要调用双向流方法,请从 Method selection下拉列表中选择方法,然后选择Invoke。这会将请求置于“流”状态,你可以开始向服务器发送消息。服务器也可以在同一个会话中响应。完成后,选择结束流式传输以结束会话。
响应部分
调用方法后,服务器会返回响应区域中显示的适当响应。
响应部分包含以下项目:
响应- 响应负载具有三种类型的信息:
- 响应主体——请求执行成功后服务器返回的主要信息。
- 元数据(初始)和尾随元数据- 服务器返回的元数据通常包含有关执行的信息。
更多信息- 此部分为你提供有关性能以及执行是否成功的关键信息。你可以使用有关执行所用时间的信息来评估 API 的性能。状态代码为你提供说明执行是否成功的信息。状态码
0 OK
表示执行成功。如果出现错误,基于 gRPC 的实现会针对不同的错误场景返回不同的状态代码,这有助于你了解原因并通过将鼠标悬停在错误上来找出下一组操作。另存为示例- 你可以将对 gRPC 请求的响应保存为 示例 。对于流方法,你必须先结束流,然后才能保存示例。请参阅 使用 gRPC 示例 了解更多信息。
换行文本按钮- 选择此按钮可根据响应区域的宽度调整响应正文的宽度,从而无需滚动即可更轻松地阅读较长的响应。
搜索- 使用**“搜索”**按钮在响应中查找特定内容。
多重响应——在调用流式传输方法类型(客户端流式传输、服务器流式传输或双向流式传输)时,单个会话中的客户端-服务器通信在响应区域中记录为时间轴中的一系列已发送和已接收消息,而不是单一的回应。
- 连接状态- 连接状态显示与服务器的连接是否处于活动状态以及消息是否正在流式传输。
- 消息流- 消息流具有按时间倒序排列的已发送、已接收和信息性消息的列表(最新出现在顶部)。
- 展开/折叠消息- 你可以通过在消息流中展开来深入查看消息内容。
- 搜索消息- 你可以使用高级搜索输入来搜索特定消息。
- 消息过滤器- 使用消息过滤器根据消息类型调整视图。你可以选择查看从客户端发送或从服务器接收的消息,而不是所有消息。
- 清除消息-清除消息按钮隐藏视图中交换的所有消息,清理响应区域,以便你可以专注于新消息。你可以使用隐藏视图中的恢复按钮恢复消息。
测试结果- 你在脚本部分编写的断言结果显示在这里。基于测试脚本,结果可以是以下三种类型之一:通过、失败和跳过。详细了解 gRPC 请求中的脚本 。
右侧边栏使你可以访问更多工具和信息,例如文档、评论和请求详细信息。打开 gRPC 请求,然后在右侧栏中选择一个选项:
请求文档- 选择文档图标 以查看请求的文档。当你选择一种方法时,Postman 会使用 protobuf 定义自动为有效负载字段和数据类型生成文档。你还可以添加描述以帮助用户理解和使用该请求。选择添加请求描述,然后使用 Postman 的 内置编辑工具 编写你的内容。
你还可以向收藏集的概览或收藏夹中的文件夹添加描述。在边栏中选择收藏或文件夹,然后选择添加收藏描述或添加文件夹描述。
评论- 选择评论图标 可在你处理 API 时与你的团队成员协作。你可以使用
@
标记其他人来提出问题、提供反馈和讨论你的 API。请求信息- 选择信息图标 以查看有关请求的更多详细信息,例如请求 ID 和创建日期。
故障排除
如果你在使用 Postman 的 gRPC 客户端时遇到问题,请详细了解常见问题以及如何解决这些问题。
有关更多疑难解答信息,请参阅 应用程序问题疑难解答 和 请求疑难解答 。
暂停服务
当前客户端设置无法访问你正在使用的服务器。如果你已确认服务器正在运行,请检查客户端中的 TLS 设置。默认情况下,TLS 处于关闭状态。
服务器反射失败
- 检查服务器是否支持服务器反射。
- 检查请求的 TLS 设置。
- 使用服务定义重试服务器反射 > 使用服务器反射 > 再试一次。
切换到 Postman Desktop Agent 以连接 gRPC 服务器
要使用 Postman 的所有 gRPC 功能,你必须运行 Postman Desktop Agent。
了解有关 安装 Postman Desktop Agent 的 更多信息。
下一步
了解所有基本界面元素后,尝试 调用你的第一个 gRPC 请求 。