2

如何在 proto 文件中定义通用消息。

例如:

message GenericResponse
{
    bool status = 1;
    Foo foo= 2;
    Bar bar = 3;
    Baz baz = 4;
}

而不是上面提到的协议,我需要以下协议。

message GenericResponse
{
    bool status = 1;
    google.protobuf.Message response = 2;
}

我需要在. Foo_ 有没有办法做到这一点?BarBazresponse

4

1 回答 1

2

我建议这oneof是你最好的选择:

message GenericResponse
{
    bool status = 1;
    oneof response {
        Foo foo= 2;
        Bar bar = 3;
        Baz baz = 4;
    }
}

您也可以使用Any,但 IMO 那将是一个错误,并且会使您的事情变得更加困难。

于 2017-12-25T16:44:14.307 回答