codecamp

Postman 使用 gRPC 请求接口

Postman 中的 gRPC 请求包括各种工具、视图和控件,可帮助您有效且高效地使用和测试 gRPC 服务。本主题重点介绍请求接口的各个部分以及如何使用它。

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 请求


Postman gRPC 概述
Postman 调用您的第一个 gRPC 请求
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }