使用 grpcurl 通过命令行访问 gRPC 服务
说明
一般情况下测试 gRPC 服务,都是通过客户端来直接请求服务端。如果客户端还没准备好的话,也可以使用 BloomRPC 这样的 GUI 客户端。 如果环境不支持安装这种 GUI 客户端的话,那么有没有一种工具,类似于 curl 这样的,直接通过终端,在命令行发起请求呢? 答案肯定是有的,就是本文要介绍的 grpcurl。
grpc服务
使用之前写的示例项目:https://github.com/grpc-example/simple
关键代码:
1// 注册 grpcurl 所需的 reflection 服务
2reflection.Register(server)
使用grpcurl
查看服务列表
1grpcurl -plaintext 127.0.0.1:50001 list
2
3grpc.reflection.v1alpha.ServerReflection
4hello.Greeter
服务的方法列表
1grpcurl -plaintext 127.0.0.1:50001 list hello.Greeter
2
3hello.Greeter.SayHello
查看方法定义
1grpcurl -plaintext 127.0.0.1:50001 describe hello.Greeter.SayHello
2
3hello.Greeter.SayHello is a method:
4rpc SayHello ( .hello.HelloRequest ) returns ( .hello.HelloReply );
查看请求参数
1grpcurl -plaintext 127.0.0.1:50001 describe hello.HelloRequest
2
3message HelloRequest {
4  string name = 1;
5}
请求服务
1grpcurl -d '{"name": "wang"}' -plaintext 127.0.0.1:50001 hello.Greeter.SayHello
2
3{
4  "message": "Hello wang"
5}
-d 参数后面也可以跟 @,表示从标准输入读取 json 参数,一般用于输入比较复杂的 json 数据,也可以用于测试流方法。
注意:想结束输入时,需要先输入回车,然后输入ctrl+D
 发布日期:2023-08-24 23:19 字数:101 用时
                                
                                
                                
                            
                        标签云
            
                alpine(1)  api网关(1)  async(1)  await(1)  centos(4)  cli(1)  client-go(1)  debug(1)  docker(10) docker-compose(1)  dockerfile(1)  embed(1)  es6(1)  etcd(1)  etcdctl(1)  freemesh(2)  git(6)  go(5) go-zeus(5)  goland(2)  golang(7)  grafana(2)  grpc(5)  grpcurl(1)  homebrew(1)  homedir(1)  http(2) hugo(1)  java(2)  javascript(3)  job(1)  js(1)  json(1)  k8s(16)  k8s部署指南(1)  kubebuilder(1) kubectl(4)  kubernetes(1)  linux(2)  localecompare(1)  lombok(1)  metrics(2)  mock(1)  mysql(1)  npm(1) nsenter(1)  nvm(1)  pnpm(2)  pprof(1)  prettier(1)  prometheus(2)  protobuf3(1)  protoc(1)  qiankun(1) request(1)  scss(1)  servicemesh(1)  spring(1)  springcloud->freemesh(1)  ssh(2)  systemctl(1)  tcpdump(1)  typescript(2) vite(2)  vscode(2)  vue(8)  vue-admin(2)  vue3(1)  webssh(1)  xtermjs(1)  xxl-job(1)  yarn(1) zookeeper(1)  云原生(4)  云原生框架(1)  介绍(1)  单体架构->freemesh(1)  单元化(1)  博客(1)  压缩(1)  可观测(1) 后台管理系统(1)  命名规范(1)  多云多活(1)  如水网(1)  安全(1)  安装(1)  容器(2)  开发联调神器(1)  微前端(1) 微服务(2)  微服务架构->freemesh(1)  微服务框架(1)  快速开始(1)  控制面(1)  数据面(1)  文集(2)  服务发现(1)  服务网格(1) 流量泳道(1)  流量管理(1)  监控告警(1)  端口映射(1)  证书(1)  负载均衡(1)  配置(1)