protoc命令


1.生成proto文件

protoc --proto_path=.:$GOPATH/src --go_out=. --micro_out=. proto/foobar/foobar.proto

// 生成protoc 文档

(1.)下载protoc-gen-doc二进制到/usr/local/bin目录

go get -u github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc

(2.)生成proto文件时加入下面的参数
--doc_out=./doc --doc_opt=html,index.html

protoc --doc_out=. --doc_opt=html,index.html protos/*.proto

protoc --proto_path=.:$GOPATH/src --go_out=. --micro_out=. --doc_out=./doc --doc_opt=html,index.html proto/foobar/foobar.proto

(3.)生成swagger
go get "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2"

protoc --openapiv2_out . --openapiv2_opt allow_merge=true,merge_file_name=dms --openapiv2_opt logtostderr=true ./*.proto

swagger serve -F=swagger ./dms.swagger.json --host=localhost -p=5000

2.单元测试覆盖

go test ./... --cover --count=2

proto 参数校验

1.下载插件

go get github.com/favadi/protoc-go-inject-tag

2.proto文件中写注释

// file: test.proto
syntax = "proto3";

package pb;

message IP {
  // @inject_tag: valid:"ip"
  string Address = 1;
}

3.生成文件

protoc --go_out=. test.proto
protoc-go-inject-tag -input=./test.pb.go

相关链接

https://github.com/favadi/protoc-go-inject-tag
https://www.kaifa99.com/GitHub/article_142142
https://studygolang.com/articles/28563
https://marvinsblog.net/post/2020-08-05-proto-doc-gen/


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM