当前位置: 首页 > 知识库问答 >
问题:

无法创建grpc网关。gw.pb,没有错误

乔宏峻
2023-03-14

我写了一个简单的go服务器和客户端,客户端发送两个数字,服务器用总和回复,它工作了。现在,我正在尝试使用grpc API配置设置grpc网关,并将客户端的请求从grpc更改为rest。

我正在使用本教程,在以下部分中,我无法创建gw,但没有错误:

protoc -I/usr/local/include -I. \
  -I$GOPATH/src \
  -I$GOPATH/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis \
  --grpc-gateway_out=logtostderr=true,grpc_api_configuration=path/to/your_service.yaml:. \
  path/to/your_service.proto

我用了这个:

protoc -I/usr/local/include -I.   -I$GOPATH/src   -I$GOPATH/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis --grpc-gateway_out=logtostderr=true,grpc_api_configuration=$GOPATH/src/grpc-test/sum.yaml:. ./sum.proto

在这个问题之后,我搜索并找到了这种既不工作(没有错误也没有输出!):

protoc -I/usr/local/include -I. -I$GOPATH/src -I$GOPATH/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis --plugin=protoc-gen-grpc-gateway=$GOPATH/bin/protoc-gen-grpc-gateway  --grpc-gateway_out=logtostderr=true,grpc_api_configuration=sum.yaml:. ./sum.proto

我在grpc测试目录中运行它,目录树如下:

那么,我做错了什么?

编辑:这是我的sum.yaml:

type: google.api.Service
config_version: 3

http:
  rules:
    - selector: example.YourService.Echo
      post: /v1/example/echo
      body: "*"

这是sum.proto:

syntax = "proto3";


service ComputeSum {
    rpc ComputeSum (SumRequest) returns (ResultReply) {
    }
}

message SumRequest {
    int32 firstOperand = 1;
    int32 secondOperand = 2;
}

message ResultReply {
    int32 result = 1;
}

共有1个答案

郁宾鸿
2023-03-14

问题在于中的选择器,它应该是ComputeSum。ComputeSum。我在Gophers slack的grpc频道问了这个问题,约翰·布兰德霍斯特帮了我。

 类似资料:
  • 我已经在windows上安装了PySpark,直到昨天都没有问题。我使用的是、、。昨天,当我尝试创建一个spark会话时,我遇到了以下错误。 我确实查看了github上的pyspark问题以及stackoverflow问题,但这个问题没有解决。 2.)尝试设置,但没有帮助。 请建议我可能的解决办法。

  • 我有一个Orders表,其中的< code>resellerID列是一个可空整数。在大多数记录中,< code>resellerID为NULL,但有时它包含一个与Resellers表相关联的整数,该表包含< code>resellerID和< code>resellerName列。 当我尝试添加两个之间的关系时,我收到以下错误: 问题是<code>Orders的可为Null性质吗。经销商ID列?这

  • 这个问题是由打字错误或无法再复制的问题引起的。虽然类似的问题可能在这里是主题,但这个问题的解决方式不太可能对未来的读者有所帮助。 Eclipse 版本 :eclipse-jee-oxygen-3a-win32-x86_64 java : jdk1.7.0_79 系统信息 : Eclipse错误: eclipse配置设置文件: -启动插件/org.eclipse.equinox.launcher_1

  • 问题内容: 我已经尝试了过去两天没有运气的问题。我只是试图使用spring框架和hibernate创建一个基于注释的JUnit测试。 我的IDE是netbeans 6.5,我正在使用hibernate3,spring2.5.5和JUnit 4.4。 这是我得到的错误: 问题答案: 将始终表明,一类是在你的编译器的类路径的版本是从上运行时类路径类的版本不同(有方法在编译时失踪,编译就失败了。) 在这

  • /*HHH000388:不成功:创建表USER_REGISTRATION_DB(用户-否整数不为空,地址varchar(60),年龄varchar(255),出生日期date_of_birding datetime不为空,电子邮件varchar(40),第一名varchar(30),最后一名varchar(255),移动varchar(255)不为空,密码varchar(30),用户名varcha

  • 问题内容: 我看到很多关于写入SD卡的帖子,但是我相信我的问题有所不同。在建立AVD的过程中,我无法创建SD卡。 我最初尝试使用Android SDK和AVD Manager来执行此操作,选择 名称 :my_avd 目标 :Android 2.2-API级别8 SD卡 :大小:1024 MiB 皮肤 :内置:默认(HVGA) 硬件 :属性:抽象的LCD密度,值:160 这会弹出一个窗口,并显示以下