3

我的原型中有多个具有相同名称和不同参数的方法,当我尝试生成 grpc 时出现错误:

'方法已经定义'

rpc method_x (Request_1) returns (response_x) {}
rpc method_x(Request_2) returns (response_x) {}
4

1 回答 1

3

不。方法解析仅基于名称,并且 protobuf 有效负载不是自描述的,因此无法知道特定有效负载是 X 还是 Y - 编组器/类型是从方法名称解析的。

所以不行。

你可以做的是使用oneof- 有一种方法采用单个根消息作为字段,作为字段,( oneof) X、Y、Z ...... - 本质上是一个有区别的联合。并在反序列化后根据它在内部进行切换。

于 2019-09-09T11:59:28.947 回答