ProtoOptions
简介
使用protobuf的options,我们可以添加我们自己的option,然后根据option生成代码添对proto中的参数进行处理,例如添加message的校验。
extension
能够对已经存在的消息进行扩展,这种扩展只是动态增加字段,而没有增加接口。
例子:扩展protobuf的FieldOptions- message MyFileOptions {
- optional bool ok = 1;
- }
- // 扩展protobuf的MessageOptions
- extend google.protobuf.FileOptions {
- optional MyFileOptions my_file_option = 51234; // 取一个自定义不重复值
- }
复制代码 protobuf options
- google.protobuf.FileOptions
- google.protobuf.ServiceOptions
- google.protobuf.MethodOptions
- google.protobuf.MessageOptions
- google.protobuf.FieldOptions
- google.protobuf.EnumOptions
- google.protobuf.EnumValueOptions
- google.protobuf.OneofOptions
- google.protobuf.ExtensionRangeOptions
实现自定义option
扩展实现
- mkdir protoc-gen-my-option
- cd protoc-gen-my-option
复制代码 实现一个FileOptions
[code]mkdir proto# 在proto中实现自己的option,可以将EOF的内容拷贝到proto/my_option.proto中echo > proto/my_option.proto |