gRPC 是一个高性能、高效的远程过程调用(RPC)框架,广泛应用于现代分布式系统。在微服务架构中,gRPC 通过其流式传输能力和 Protocol Buffers 序列化,实现低延迟和更低带宽消耗的高效服务间通信。前提条件#
在 Apidog 中使用 gRPC 之前,请确保你具备:创建 gRPC 项目#
1.
在 Apidog 首页点击 "New Project"
导入 Proto 文件#
gRPC 遵循 API-First 方法,要求在开发之前通过 .proto 文件定义服务、方法和消息。导入你的 .proto 文件,即可开始在 Apidog 中调试 gRPC API。初始导入#
| 方式 | 描述 |
|---|
| 本地文件 | 从本地文件系统上传 .proto 文件 |
| URL | 从托管 .proto 文件的 URL 导入 |
| 服务器反射 | 从 gRPC 服务器自动发现服务 |
所选 .proto 文件会作为一个 Proto 导入,其中:如果 .proto 文件依赖其他文件,依赖项 必须手动添加
来自具有相同 package 的依赖 .proto 文件中的相关服务也会被导入
重新导入 Proto 文件#
当你的 .proto 文件发生变化时,请在 Apidog 中更新它:调用方法#
在 .proto 文件中定义 API 时,gRPC 支持四种方法类型。Apidog 支持全部四种:| 方法类型 | 描述 |
|---|
| 一元调用 | 单个请求,单个响应(类似 HTTP) |
| 服务器流式传输 | 单个请求,来自服务器的多个响应 |
| 客户端流式传输 | 来自客户端的多个请求,单个响应 |
| 双向流式传输 | 双向的多个请求和响应 |
一元调用#
2.
在 Message 标签页下以 JSON 格式输入消息内容
你还可以配置 Metadata 和 Auth 信息,用于身份验证或复杂场景。流式调用#
流式调用的运行方式类似于 WebSocket 连接。发起调用后,你可以在 Message 标签页下编写并发送消息。高级功能#
自动生成动态值#
Apidog 能够识别 .proto 文件内容,从而自动生成消息主体:1.
点击 "Auto-generate" 按钮创建消息结构
2.
使用 "Dynamic Values" 功能进行灵活的动态数据生成
使用变量#
Apidog 变量可用于 gRPC 消息和 Metadata,以实现动态数据注入。启用 TLS#
gRPC API 支持通过 TLS(传输层安全性)建立安全连接。在 URL 中使用 grpcs:// 启用 TLS
管理服务器地址和环境#
添加服务器地址#
点击 URL 地址栏右侧的加号图标,将当前服务器地址添加到环境中。使用环境服务器地址#
2.
在 URL 地址栏中选择 "Follow Default",以使用统一的服务器地址调试所有方法
查看 Proto 文件和 API 参数#
Proto 文件内容#
点击左侧目录树中的 Proto,即可查看 .proto 文件的原始内容。请求和响应参数#
gRPC 使 用 Protocol Buffers(ProtoBuf)作为序列化格式。与基于文本的格式(JSON、XML)不同,ProtoBuf 是一种二进制格式,不适合人类阅读或编写。在 Apidog 中,为了便于使用,所有 gRPC 消息都以 JSON 格式编写和显示。你可以在 API 信息页面中以 JSON 格式查看请求和响应参数。ProtoBuf 到 JSON 的类型映射#
| ProtoBuf 3 | JSON | JSON 示例 |
|---|
| message | object | {"fooBar": v, "g": null, …} |
| enum | string | "FOO_BAR" |
| map<K,V> | object | {"k": v, …} |
| repeated V | array | [v, …] |
| bool | boolean | true, false |
| string | string | "Hello World!" |
| bytes | base64 string | "YWJjMTIzIT8kKiYoKSctPUB+" |
| int32, fixed32, uint32 | number | 1, -10, 0 |
| int64, fixed64, uint64 | string | "1", "-10" |
| float, double | number | 1.1, -10.0, 0, "NaN", "Infinity" |
保存调试信息#
Modified at 2026-06-09 08:55:47