README ¶ goctl 重要! 原仓库地址:https://github.com/zeromicro/go-zero/tree/master/tools/goctl 主要根据原仓库的 goctl 对 api 和 rpc 代码的生成等做了一些定制化的修改 基于 goctl 1.6.2 版本:https://github.com/zeromicro/go-zero/tree/v1.6.2/tools/goctl 安装 # 可选:自行编译安装(代码最新): $ git clone https://github.com/sliveryou/goctl.git $ cd goctl $ go install # 推荐:go download(代码稳定) # 如果 go 版本在 1.16 以前,使用如下命令安装: $ GO111MODULE=on go get -u github.com/sliveryou/goctl@latest # 如果 go 版本在 1.16 及以后,使用如下命令安装: $ GO111MODULE=on go install github.com/sliveryou/goctl@latest 改动 优化:当有一个 api 文件,如 base.api 文件 import 了多个 api 文件时,这些 api 文件可以跨文件共享定义好的结构体,方便一些公有结构体放在 common.api 中,其他文件共用 优化:增加 goctl api proto 命令,可以基于 api 文件生成 proto 文件,使用例子:goctl api proto --api base.api --dir . 优化:支持生成 handler 相关文件时增加 swag 注解,需使用项目内模板 .goctl,使用例子:goctl api go --api base.api --dir . --home .goctl 配合 swag 工具可以生成 swagger 文档和 swagger 服务,使用例子:swag init -d . -g main.go -p snakecase --ot go,json,yaml -o docs 可以将项目内模板作为 goctl 执行默认模板,命令:mkdir -p ~/.goctl/1.6.2 && cp -r .goctl/* ~/.goctl/1.6.2 优化:增加 goctl rpc client 命令,可以基于 proto 文件只生成适配 go-zero 的 grpc client 代码,用法与 goctl rpc protoc 相同 优化:增加 rpc 记录日志,需要修改本地 goctl 模板,参考 .goctl/rpc/logic.tpl 优化:增加 api 记录日志,需要修改本地 goctl 模板,参考 .goctl/api/logic.tpl Expand ▾ Collapse ▴ Documentation ¶ There is no documentation for this package. Source Files ¶ View all Source files goctl.go Directories ¶ Show internal Expand all Path Synopsis api apigen dartgen docgen format gogen javagen ktgen new parser parser/g4/ast parser/g4/gen/api protogen spec tsgen util validate bug cmd compare cmd config docker env example rpc/hello rpc/hello/client/greet rpc/hello/internal/config rpc/hello/internal/logic/greet rpc/hello/internal/server/greet rpc/hello/internal/svc rpc/hello/pb/hello rpc/hi rpc/hi/client/event rpc/hi/client/greet rpc/hi/internal/config rpc/hi/internal/logic/event rpc/hi/internal/logic/greet rpc/hi/internal/server/event rpc/hi/internal/server/greet rpc/hi/internal/svc rpc/hi/pb/hi gateway internal cobrax errorx flags version kube migrate model mongo mongo/generate mongo/template sql/builderx sql/command sql/command/migrationnotes sql/converter sql/gen sql/model sql/parser sql/template sql/test sql/test/model sql/util pkg collection downloader env goctl golang parser/api/assertx parser/api/ast parser/api/format parser/api/importstack parser/api/parser parser/api/placeholder parser/api/scanner parser/api/token protoc protocgengo protocgengogrpc plugin demo quickstart rpc cli execx generator parser test tpl update config upgrade util console ctx env format name Package name provides methods to verify naming style and format naming style See the method IsNamingValid, FormatFilename Package name provides methods to verify naming style and format naming style See the method IsNamingValid, FormatFilename pathx stringx zipx vars Click to show internal directories. Click to hide internal directories.