一、更新一个消息类型 如果一个已有的消息格式已无法满足新的需求——如,要在消息中添加一个额外的字段——但是同时旧版本写的代码仍然可用。不用担心!更新消息而不破坏已有代码是非常简单的。在更新时只要记住以下的规则即可。 1.不要更改任何已有的字段的数值标识。 2.所添加 ...
Protobuf 更新消息类型 如果现有的消息类型不满足你的所有需求 例如,你希望消息格式有一个额外的字段 但是你仍然希望使用用旧格式创建的代码,别担心 在不破坏任何现有代码的情况下更新消息类型非常简单。请记住以下规则: 不要更改任何现有字段的字段编号。 如果添加新字段,任何使用 旧 消息格式由代码序列化的消息仍然可以被新生成的代码解析。您应该记住这些元素的默认值,以便新代码可以与旧代码生成的消息 ...
2019-09-11 17:32 0 1059 推荐指数:
一、更新一个消息类型 如果一个已有的消息格式已无法满足新的需求——如,要在消息中添加一个额外的字段——但是同时旧版本写的代码仍然可用。不用担心!更新消息而不破坏已有代码是非常简单的。在更新时只要记住以下的规则即可。 1.不要更改任何已有的字段的数值标识。 2.所添加 ...
Protobuf3 Any类型 Any消息类型允许您将消息作为嵌入类型,而不需要它们 .proto定义。Any包含任意序列化的消息(字节),以及一个URL,该URL充当该消息的全局唯一标识符并解析为该消息的类型。要使用Any类型,你需要导入google/protobuf/any.proto. ...
Protobuf3 标量值类型 标量消息字段可以具有以下类型之一——该表显示了.proto文件中指定的类型,以及自动生成的类中的相应类型: .proto类型 说明 C++ 类型 Java 类型 Python类型 Go类型 Ruby ...
Protobuf3 嵌套类型 您可以在其他消息类型中定义和使用消息类型,如下例所示:这里Result消息是在SearchResponse消息中定义的: message SearchResponse { message Result { string url ...
定义数据类型 首先让我们看一个非常简单的例子。假设您想要定义搜索请求消息格式,其中每个搜索请求都有一个查询字符串、您感兴趣的特定结果页面以及每页的结果数量。这是用来定义消息类型的.proto文件。 syntax = "proto3"; message SearchRequest ...
当你第一次定义Protocol Buffer的消息的时候,你肯定会给消息设定一套规则需求。但是随着时间的推进,你的业务可能会发生了变化,与此同时,你的Protocol Buffer消息类型的需求也会随之变化。 也就是说:有一些字段可能会发生变化,可能会添加一些字段,也可能会删除一些字段 ...
: 您不能更改任何现有字段的标签号。 您不得添加或删除任何必填字段。 ...
Protobuf3 枚举 定义消息类型时,您可能希望它的一个字段有一个预定义的值列表。例如,假设您希望为每个SearchRequest添加一个corpus字段,其中语料库可以是UNIVERSAL、WEB、IMAGES、LOCAL、NEWS、PRODUCTS 或VIDEO。您可以非常简单 ...