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