gRPCurl 是什么
gRPCurl是一个命令行工具,用于与gRPC服务进行交互。gRPC是一种高性能、开源的远程过程调用(RPC)框架,用于构建分布式系统。而gRPCurl允许您通过命令行界面直接与gRPC服务进行通信,无需编写任何客户端代码。
使用gRPCurl,您可以发送gRPC调用请求并查看响应结果,这对于测试、调试和理解gRPC服务的功能非常有用。它支持通过Protobuf文件描述符(.proto文件)来构造请求,可以指定要调用的服务和方法,以及提供必要的输入参数。
gRPCurl提供了许多功能,包括:
- 发送单个请求:您可以使用gRPCurl发送单个请求,并查看服务器的响应。
- 反射服务:通过gRPC的反射机制,可以发现和探测gRPC服务中的可用服务和方法。
- 通过TLS进行安全通信:gRPCurl支持通过TLS(Transport Layer Security)进行安全通信,以保护数据的传输安全性。
- 支持自定义请求头和元数据:您可以添加自定义请求头和元数据到gRPC请求中。
- 支持服务器流和客户端流:gRPCurl可以处理服务器流和客户端流的gRPC调用。
总之,gRPCurl是一个强大的工具,可帮助您与gRPC服务进行交互,并在开发和调试过程中发挥重要作用。
gRPCurl 安装
可以通过 github 下载二进制文件,如果是 macos 的操作系统,则可以直接使用 brew 命令安装
brew install grpcurl或者基于 Docker 来安装使用
# Download image
docker pull fullstorydev/grpcurl:latest
# Run the tool
docker run fullstorydev/grpcurl api.grpc.me:443 list基础使用
显示服务的反射信息
grpcurl -plaintext localhost:9898 list显示特定服务的方法列表
grpcurl -plaintext localhost:9898 . 查看方法的请求和响应消息定义
grpcurl -plaintext localhost:50051 describe ./ 发送一个gRPC请求
grpcurl -plaintext -d '{"field": "value"}' localhost:50051 ./ 