Protobuf 保留字段

提示

此内容摘自电子书《面向 WCF 开发人员的 gRPC》,可在 .NET 文档上获取,也可作为免费可下载的 PDF 脱机阅读。

《面向 WCF 开发人员的 gRPC》电子书封面缩略图。

协议缓冲区 (Protobuf) 中的向后兼容性保证依赖于字段编号始终表示相同的数据项。 如果从服务的新版本的消息中删除字段,则永远不应重复使用该字段编号。 可以通过使用 reserved 关键字强制执行此行为。

如果已从前面定义的 Stock 消息中删除了 displayNamemarketId 字段,则应该保留其字段编号,如以下示例中所示。

syntax "proto3";

message Stock {

    reserved 3, 4;
    int32 id = 1;
    string symbol = 2;

}

你还可以使用 reserved 关键字作为以后可能添加的字段的占位符。 可以使用 to 关键字将连续的字段编号表示为一个范围。

syntax "proto3";

message Info {

    reserved 2, 9 to 11, 15;
    // ...
}