Protobuf 保留字段
协议缓冲区 (Protobuf) 中的向后兼容性保证依赖于字段编号始终表示相同的数据项。 如果从服务的新版本的消息中删除字段,则永远不应重复使用该字段编号。 可以通过使用 reserved
关键字强制执行此行为。
如果已从前面定义的 Stock
消息中删除了 displayName
和 marketId
字段,则应该保留其字段编号,如以下示例中所示。
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;
// ...
}