diff --git a/doc/wiki-cn/blademaster-pb.md b/doc/wiki-cn/blademaster-pb.md index f6b6d1034..9e9d21d37 100644 --- a/doc/wiki-cn/blademaster-pb.md +++ b/doc/wiki-cn/blademaster-pb.md @@ -10,7 +10,7 @@ `kratos tool protoc`工具可以生成`warden` `bm` `swagger`对应的代码和文档,想要单独生成`bm`代码只需加上`--bm`如: ```shell -// generate BM HTTP +# generate BM HTTP kratos tool protoc --bm api.proto ``` @@ -59,3 +59,18 @@ func (s *Service) SayHelloURL(ctx context.Context, req *pb.HelloReq) (reply *pb. return } ``` + +# 文档 + +基于同一份`proto`文件还可以生成对应的`swagger`文档,运行命令如下: + +```shell +# generate swagger +kratos tool protoc --swagger api.proto +``` + +该命令将生成对应的`swagger.json`文件,可用于`swagger`工具通过WEBUI的方式打开使用,可运行命令如下: + +```shell +kratos tool swagger serve api/api.swagger.json +``` diff --git a/doc/wiki-cn/kratos-tool.md b/doc/wiki-cn/kratos-tool.md index e94646917..8edc20943 100644 --- a/doc/wiki-cn/kratos-tool.md +++ b/doc/wiki-cn/kratos-tool.md @@ -61,7 +61,8 @@ kratos new kratos-demo -o YourName -d YourPath kratos new kratos-demo -o YourName -d YourPath --proto ``` -> 特别注意,如果不是MacOS系统,需要自己进行手动安装protoc,用于生成的示例项目`api`目录下的`proto`文件并不会自动生成对应的`.pb.go`和`.bm.go`文件。 +> 特别注意,如果不是MacOS系统,需要自己进行手动安装protoc,用于生成的示例项目`api`目录下的`proto`文件并不会自动生成对应的`.pb.go`和`.bm.go`文件。 + > 也可以参考以下说明进行生成:[protoc说明](protoc.md) # kratos build & run @@ -72,7 +73,7 @@ kratos new kratos-demo -o YourName -d YourPath --proto `kratos tool`是基于proto生成http&grpc代码,生成缓存回源代码,生成memcache执行代码,生成swagger文档等工具集,先看下的执行效果: -```shell +``` kratos tool swagger(已安装): swagger api文档 Author(goswagger.io) [2019/05/05] @@ -85,9 +86,11 @@ kratos(已安装): Kratos工具集本体 Author(kratos) [2019/04/02] 详细文档: https://github.com/bilibili/kratos/blob/master/doc/wiki-cn/kratos-tool.md ``` + > 小小说明:如未安装工具,第一次运行也可自动安装,不需要特别执行install 目前已经集成的工具有: + * kratos 为本体工具,只用于安装更新使用; * protoc 用于快速生成gRPC、HTTP、Swagger文件,该命令Windows,Linux用户需要手动安装 protobuf 工具。 * swagger 用于显示自动生成的HTTP API接口文档,通过 `kratos tool swagger serve api/api.swagger.json` 可以查看文档。 @@ -95,16 +98,16 @@ kratos(已安装): Kratos工具集本体 Author(kratos) [2019/04/02] ### kratos tool protoc ```shell -// generate all +# generate all kratos tool protoc api.proto -// generate gRPC +# generate gRPC kratos tool protoc --grpc api.proto -// generate BM HTTP +# generate BM HTTP kratos tool protoc --bm api.proto -// generate swagger +# generate swagger kratos tool protoc --swagger api.proto ``` -执行对应生成 `api.pb.go/api.bm.go/api.swagger.json` 源文档。 +执行对应生成 `api.pb.go/api.bm.go/api.swagger.json` 源文档。 > 该工具在Windows/Linux下运行,需提前安装好 protobuf 工具 @@ -114,17 +117,17 @@ kratos tool protoc --swagger api.proto export $KRATOS_HOME = kratos路径 export $KRATOS_DEMO = 项目路径 -// 生成:api.pb.go +# 生成:api.pb.go protoc -I$GOPATH/src:$KRATOS_HOME/tool/protobuf/pkg/extensions:$KRATOS_DEMO/api --gogofast_out=plugins=grpc:$KRATOS_DEMO/api $KRATOS_DEMO/api/api.proto -// 生成:api.bm.go +# 生成:api.bm.go protoc -I$GOPATH/src:$KRATOS_HOME/tool/protobuf/pkg/extensions:$KRATOS_DEMO/api --bm_out=$KRATOS_DEMO/api $KRATOS_DEMO/api/api.proto -// 生成:api.swagger.json +# 生成:api.swagger.json protoc -I$GOPATH/src:$KRATOS_HOME/tool/protobuf/pkg/extensions:$KRATOS_DEMO/api --bswagger_out=$KRATOS_DEMO/api $KRATOS_DEMO/api/api.proto ``` -大家也可以参考该命令进行`proto`生成,也可以参考[protobuf](https://github.com/google/protobuf)官方参数。 +大家也可以参考该命令进行`proto`生成,也可以参考[protobuf](https://github.com/google/protobuf)官方参数。 ### kratos tool swagger