protobuf笔记

在这里插入图片描述

protoc -I=pb/protos -I=pb/protos/third/github.com pb/protos/custom/*.proto

![在这里插入图片描述](https://img-blog.csdnimg.cn/ad0bb242b4094bd68dff7eeb3d33ba6e.
-I 指定需要import的gogo.proto文件路径, protoc查找过程为 -I后面的路径和import的路径拼接在一起。

  1. -I=pb/protos
    指定proto源文件路径
  2. -I=pb/protos/third/github.com
    指定第三方proto,例如any.proto

protoc --gogofaster_out=./pb/pbs

指定使用插件gogofaster,并且生成到pb/pbs目录下
protoc在执行的时候回到gopath下的bin目录找名为 protoc-gen-gogofaster 可执行文件。
注意:在写命令行调用插件的时候 只需要写protoc-gen- 后面的内容,然后加上 _out

protoc 原本会生成xxx.pb.go,如果在后面有插件的话,那么protoc生成的内容会被传给后面的插件继续丰富文件内容,并且插件可以修改最后输出的文件名。

oneof

import "validator.proto";
message animal{
  oneof ani{
    option (validator.oneof) = {required:true};
    dog d=1;
    cat c=2;
  }
}

message dog{
  string name=1;
}

message cat{
  int32 age = 1;
}

validator

message cat{
  int32 age = 1[(validator.field)={int_gt:0, int_lt:200}];
}

age必须大于0,小于200

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值