Protobuf Options 自定义插件使用

打印 上一主题 下一主题

主题 664|帖子 664|积分 1992

ProtoOptions

简介

使用protobuf的options,我们可以添加我们自己的option,然后根据option生成代码添对proto中的参数进行处理,例如添加message的校验。
extension

能够对已经存在的消息进行扩展,这种扩展只是动态增加字段,而没有增加接口。
例子:扩展protobuf的FieldOptions
  1. message MyFileOptions {
  2.   optional bool ok = 1;
  3. }
  4. // 扩展protobuf的MessageOptions
  5. extend google.protobuf.FileOptions {
  6.   optional MyFileOptions my_file_option = 51234; // 取一个自定义不重复值
  7. }
复制代码
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

扩展实现
  1. mkdir protoc-gen-my-option
  2. cd protoc-gen-my-option
复制代码
实现一个FileOptions
[code]mkdir proto# 在proto中实现自己的option,可以将EOF的内容拷贝到proto/my_option.proto中echo > proto/my_option.proto
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

民工心事

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表