宝藏好物gRPCurl

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

gRPCurl简介


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特性


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


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

使用gRPC反射进行服务发现

列出并描述 gRPC服务

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

ASP.NET Core设置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<GreeterService>();
        if (env.IsDevelopment())
        {
            endpoints.MapGrpcReflectionService();
        }
    });
}


服务发现、服务调用


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


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窗口:


cb638a183716a5d53d5015a9b4c3583a.png


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


4a7ebd2fc83d8dcba687b9e2e9fe9623.jpg


就是这么神奇!


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


`grpcurl  -import-path ../protos   -proto  greet.proto -d {\"name\":\"World\"} localhost:5001 gree
相关文章
|
人工智能
阿云漫画 | 一朝飞天梦,十二年阿里云
编者按: 千年前,一盏孔明灯放飞起升天的梦想,也托起人工智能的科幻想象。从敦煌飞天到万户飞天,阿里云,让飞天不再停留在想象。
117 0
阿云漫画 | 一朝飞天梦,十二年阿里云
|
移动开发
阿云漫画 | 一片绿叶,让冬奥火炬“飞扬”
编者按: 冬奥会倒计时开始了!设计团队曾为如何呈现火炬“飞扬”的最佳形态犯难,直到看到一片线条灵动轻盈的树叶,大家的灵感被点燃,参考“大自然造就的曲线张力和美感”,团队调整了120多版模型,不断打磨细节,终于让火炬“活”了起来。
123 0
|
前端开发 JavaScript 算法
【七夕特别篇】七夕已至,让爱闪耀
【七夕特别篇】七夕已至,让爱闪耀
【七夕特别篇】七夕已至,让爱闪耀
|
6月前
|
人工智能 达摩院 小程序
大咖与小白的日常:一键生成漫画风头像
AI作画火得一塌糊涂,但是好像常常画得很离谱?不如来试试阿里云视觉智能开放平台的人物动漫化API,一键生成一个属于自己的、独一无二的漫画风头像。
134 0
大咖与小白的日常:一键生成漫画风头像
关于微课的探讨一
微课就像破窗锤那个尖端的部分,而微课程就相当于它的另一面。
440 0
|
人工智能 算法 容灾
喜迎女神节 高颜值支付宝程序媛的硬核人生
桃之夭夭,灼灼其华,在疫情渐退的三月,我们迎来第110个“女神节”——“三八”国际妇女节。 
594 0
|
程序员
支付宝这些程序员要逆天,滑板、画漫画、写科幻小说、航拍,玩得太溜
他们是四位来自蚂蚁金服的普通程序员,代码有千万种可能,人生有万千种姿态,看起来高冷的 IT 男,背地里也可能是热血青年!
4680 0
支付宝这些程序员要逆天,滑板、画漫画、写科幻小说、航拍,玩得太溜
|
人工智能
淘宝造物节,“奇市江湖”里那些脑洞大开的创意产品
无人超市“淘咖啡”是本届造物节最有科技感的展位,这里可以说是集黑科技于一身,人脸识别、动作跟踪、语音识别...应用仅有!
8748 0
|
分布式计算 安全 前端开发
【0803 - 0807 直播导视 | PPT 下载】阿里云智能秋招空中宣讲会来啦!快上车!
本周多场技术讲座等你来pick!并且还有阿里云智能秋招空中宣讲会,还等什么,快上车!
565 0
|
开发者 程序员 NoSQL
滑板、航拍、写小说…你以为是个艺人,其实是支付宝程序员 | 开发者必读(055期)
最炫的技术新知、最热门的大咖公开课、最有趣的开发者活动、最实用的工具干货,就在《开发者必读》!
936 0