宝藏好物gRPCurl

gRPCurl简介

970e8d494de6d083773ec24f11fdeeb0.png

gRPCurl[1]是一个与gRPC服务器交互的命令行工具,可认为是gRPC的curl工具。

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

1. gRPCurl工具接受json编码的消息(对人类和脚本更友好), 工具底层会转化为protobuf与服务器交互。2.gRPCurl 必须了解服务的Protobuf协议(服务的schema),才能调用它们,     gRPCurl通过三种方式之一实现此目的

• gRPC服务器添加gRPC反射• 直接读取proto源文件• 加载编译后的protoset文件  (包含已被编码的proto描述文件)

gRPCurl特性

8d211cea929f57009b972f9a621eec35.png

gRPCurl是由gRPC社区创建的命令行工具,功能包括:

•调用gRPC服务,包括流式服务•使用gRPC反射进行服务发现•列出并描述 gRPC服务•支持调用安全(TLS)或者不安全(plain-text)的gRPC服务

ASP.NET Core设置grpc反射

26fd4eda4d7eeb73d73c11c53a9a9abf.png

•添加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<GreeterService>();

        if (env.IsDevelopment())
        {
            endpoints.MapGrpcReflectionService();
        }
    });
}

服务发现、服务调用

5dff44546446978d11432e8fdc013797.png

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

1. grpcurl localhost:5001 list

greet.Greeter
grpc.reflection.v1alpha.ServerReflection


2. 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方法

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

{
  "message": "Hello World"
}

gRPCui

5b9c985b84ac66894368b45a219d2d1e.png

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

•安装:go install github.com/fullstorydev/grpcui/cmd/grpcui@latest•使用:grpcui localhost:5001

会立刻打开类Swagger窗口:

dab81143a3c27a5de824fdca87d834fa.png

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

4234b308604920dcfc1926c3548e6903.gif

就是这么神奇!

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

`grpcurl  -import-path ../protos   -proto  greet.proto -d {\"name\":\"World\"} localhost:5001 greet.Greeter/SayHello`
引用链接

[1] grpcur: https://github.com/fullstorydev/grpcurl
[2] gRPCui: https://github.com/fullstorydev/grpcui#installation

性感豹纹

fbde1bc295a7c68fb26af4f104af82f3.gif HTTP1.1 Keep-Alive到底算不算长连接?

1d77d12310e6b4f93f2b9b8cbd7775e1.gif Hostonly cookie是什么鬼?

247aac56c9652aa2c05a0f878932a8b5.gif 前端镜像打包这么慢,你该反省一下dockerfile的姿势了

f690009ceaab544d5332e307c8d10a79.gif

 SignalR 开发到生产部署闭坑指南

dfd9ac09a023532730253e5e0413cc4d.gif

 难缠的布隆过滤器,这次终于通透了

1d91f6a656528a98d1af2ecd28e945b1.png

点个在看你最好看

6395d1463e3cde51f9be509ed485bd93.png

仅代表此刻认知,文章永久更新地址,请移步原文!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有态度的马甲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值