kratos tool protoc

  1. # generate all
  2. kratos tool protoc api.proto
  3. # generate gRPC
  4. kratos tool protoc --grpc api.proto
  5. # generate BM HTTP
  6. kratos tool protoc --bm api.proto
  7. # generate ecode
  8. kratos tool protoc --ecode api.proto
  9. # generate swagger
  10. kratos tool protoc --swagger api.proto

执行生成如 api.pb.go/api.bm.go/api.swagger.json/api.ecode.go 的对应文件,需要注意的是:ecode生成有固定规则,需要首先是enum类型,且enum名字要以ErrCode结尾,如enum UserErrCode。详情可见:example

该工具在Windows/Linux下运行,需提前安装好 protobuf 工具

kratos tool protoc本质上是拼接好了protoc命令然后进行执行,在执行时会打印出对应执行的protoc命令,如下可见:

  1. protoc --proto_path=$GOPATH --proto_path=$GOPATH/github.com/go-kratos/kratos/third_party --proto_path=. --bm_out=:. api.proto
  2. protoc --proto_path=$GOPATH --proto_path=$GOPATH/github.com/go-kratos/kratos/third_party --proto_path=. --gofast_out=plugins=grpc:. api.proto
  3. protoc --proto_path=$GOPATH --proto_path=$GOPATH/github.com/go-kratos/kratos/third_party --proto_path=. --bswagger_out=:. api.proto
  4. protoc --proto_path=$GOPATH --proto_path=$GOPATH/github.com/go-kratos/kratos/third_party --proto_path=. --ecode_out=:. api.proto