天天看點

寶藏好物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