宝藏好物gRPCurl
宝物简介
grpcur是一个与grpc服务器交互的命令行工具,可认为是gRPC的curl
工具。
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注册反射
public void ConfigureServices(IServiceCollection services)
{
services.AddGrpc();
services.AddGrpcReflection();
}public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapGrpcService();
if (env.IsDevelopment())
{
endpoints.MapGrpcReflectionService();
}
});
}
有各种操作系统的适配版本。
服务发现、服务调用
grpcurl list/describe 可以列出gRPC服务端反射的protobuf
- grpcurl localhost:5001 list
greet.Greeter
grpc.reflection.v1alpha.ServerReflection
- grpcurl localhost:5001 describe
greet.Greeter is a service:
service Greeter {
rpc SayHello ( .greet.HelloRequest ) returns ( .greet.HelloReply );
}
grpc.reflection.v1alpha.ServerReflection is a service:
service ServerReflection {
rpc ServerReflectionInfo ( stream .grpc.reflection.v1alpha.ServerReflectionRequest ) returns ( stream .grpc.reflection.v1alpha.ServerReflectionResponse );
}
grpc -d ( Data for request contents) 传参调用gRPC方法
- grpcurl -d {"name":"World"} localhost:5001 greet.Greeter/SayHello
{
"message": "Hello World"
}
gRPCui
gRPCui 是 gRPC 的交互式 Web UI,基于gRPCurl,并提供一个GUI来发现和测试 gRPC 服务,类似于 Postman 或 Swagger UI 等 HTTP 工具。
- 安装: go install github.com/fullstorydev/grpcui/cmd/grpcui@latest
- 使用: grpcui localhost:5001
文章图片
输入Request Header、Request Data,自行倒腾。
文章图片
就是这么神奇!
【宝藏好物gRPCurl】以上是利用gRPC服务反射,获取protobuf的方式,grcpurl还支持直接读取protobuf文件。
`grpcurl-import-path ../protos-protogreet.proto -d {\"name\":\"World\"} localhost:5001 greet.Greeter/SayHello`
推荐阅读
- 跌跌撞撞奔向你|跌跌撞撞奔向你 第四章(你补英语,我补物理)
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 做一件事情的基本原理是什么()
- 人生两件宝(好身体,好心情!)
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 螃蟹和这些食物同吃,轻则腹泻、重则中毒!要小心哦~
- 做个俗物有什么不好
- 有句话忍很久了,女生要求买房怎么就物质了()
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 球松