Protobuf3 使用其他消息类型
您可以使用其他消息类型作为字段类型。例如,假设您希望在每个SearchResponse消息中包含Result消息,为此,您可以在.proto中定义结果消息类型,然后在SearchResponse中指定Result类型字段:
message SearchResponse {
repeated Result results = 1;
}
message Result {
string url = 1;
string title = 2;
repeated string snippets = 3;
}
导入定义
在上面的例子中,Result 消息类型和SearchResponse定义在同一个文件中——如果你想用作字段类型的消息类型已经在另一个.proto 文件中定义了呢?
您可以通过导入其他.proto文件来使用文件中的定义的类型。 您可以在文件的顶部添加一条import语句:
import "myproject/other_protos.proto";
默认情况下,您只能使用直接导入的 .proto文件定义。然而,有时你可能需要移动一个 .proto文件到一个新的位置,但不想为此更新了所有调用它的.proto文件,现在你可以在文件原始位置放置一个仿造的 .proto文件,使用import public将所有导入转发到新位置。任何包含import public语句的proto的人都可以临时依赖import public依赖。例如: