首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Protocol Buffer消息是否经过验证?

Google Protocol Buffer消息是否经过验证?
EN

Stack Overflow用户
提问于 2017-11-01 02:30:55
回答 1查看 472关注 0票数 0

下面是来自Google developer guide web page的.proto文件。假设协议缓冲区编译器在.proto文件上运行以生成数据访问类。这些类是否验证接收到的消息?例如,它是否验证"type“字段的值为MOBILE、HOME或WORK,而没有其他值?假设一条消息包含.proto文件中未指定的数据,这些类是否会向使用该消息的应用程序发出警报?

代码语言:javascript
复制
message Person {
  required string name = 1;
  required int32 id = 2;
  optional string email = 3;

  enum PhoneType {
    MOBILE = 0;
    HOME = 1;
    WORK = 2;
  }

  message PhoneNumber {
    required string number = 1;
    optional PhoneType type = 2 [default = HOME];
  }

  repeated PhoneNumber phone = 4;
}
EN

回答 1

Stack Overflow用户

发布于 2017-11-02 01:19:28

是的,你收到的数据被反序列化到你拥有的对象中,任何未知的字段都会被忽略。我不认为当您的应用程序接收到它使用的protos中不存在的字段时会有任何警告,但这应该很容易测试。

docs

您可以在不破坏向后兼容性的情况下向消息格式添加新字段;旧的二进制文件在解析时只是忽略新字段。因此,如果您有一个使用protocol buffers作为其数据格式的通信协议,则可以扩展您的协议,而不必担心破坏现有代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47042313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档