grpcurl
grpcurl是一个命令行工具,可让你与 gRPC 服务器进行交互。它类似于curl用于 gRPC 服务器。
安装
go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest
如果$GOPATH/bin已经添加到$PATH里,则可以直接使用grpcurl命令。
使用
大部分都是用reflection的方式,可以直接通过服务端口查询到服务提供的接口和参数。 这种方式网上已经有很多的介绍,这里就不细说了。
下面主要介绍的是指定proto文件的方式访问server。
grpcurl -d '{访问的参数}' -import-path {proto文件所在文件夹} -proto {proto文件} {gRPC-Server:port} {proto的package name}.{service name}/{method name}
例如使用grpc-go的helloworld:https://github.com/grpc/grpc-go/tree/master/examples/helloworld
- 启动grpc server
cd ./greeter_server
go build ./main.go
./greeter_server
- 使用grpcurl(另一个命令行窗口)
grpcurl -plaintext -d '{"name":"hello"}' -import-path ./helloworld -proto ./helloworld/helloworld.proto 127.0.0.1:50051 helloworld.Greeter/SayHello
如果有使用tls,就不需要携带“-plaintext”