天天看点

宝藏好物gRPCurl

grpcur是一个与grpc服务器交互的命令行工具,可认为是gRPC的<code>curl</code>工具。

grpcurl用于从命令行调用gRPC服务器支持的RPC方法,gRPC使用二进制编码(protobuf), 不能利用常规的curl工具(早期的curl版本还不支持HTTP/2)。

grpcurl工具接受json编码的消息(对人类和脚本更友好), 工具底层会转化为protobuf与服务器交互。

grpcurl 必须了解服务的Protobuf协议(服务的schema),才能调用它们, grpcurl通过三种方式之一实现此目的。

gRPC服务器添加gRPC反射

直接读取proto源文件

加载编译后的protoset文件(包含已被编码的proto描述文件)

gRPCurl是有gRPC上去创建的命令行工具,功能包括:

调用grpc服务,包括流式服务

使用grpc反射进行服务发现

列出并描述 grpc服务

支持调用安全(TLS)或者不安全(plain-text)的gRPC服务

添加Grpc.AspNetCore.Server.Reflection包引用

Startup.cs注册反射

有各种操作系统的适配版本。

grpcurl list/describe 可以列出gRPC服务端反射的protobuf

grpcurl localhost:5001 list

grpcurl localhost:5001 describe

grpc -d ( Data for request contents) 传参调用gRPC方法

grpcurl -d {"name":"World"} localhost:5001 greet.Greeter/SayHello

gRPCui 是 gRPC 的交互式 Web UI,基于gRPCurl,并提供一个GUI来发现和测试 gRPC 服务,类似于 Postman 或 Swagger UI 等 HTTP 工具。

安装: go install github.com/fullstorydev/grpcui/cmd/grpcui@latest

使用: grpcui localhost:5001

会立刻打开类Swagger窗口:

输入Request Header、Request Data,自行倒腾。

就是这么神奇!

以上是利用gRPC服务反射,获取protobuf的方式,grcpurl还支持直接读取protobuf文件。

本文来自博客园,作者:{有态度的马甲},转载请注明原文链接:https://www.cnblogs.com/JulianHuang/p/15594268.html

欢迎关注我的原创技术、职场公众号, 加好友谈天说地,一起进化

宝藏好物gRPCurl