Skip to main content

goctl介绍

goctl 读作 go control,不要读成 go C-T-Lgoctl 的意思是不要被代码控制,而是要去控制它。其中的 go 不是指 golang。在设计 goctl 之初,我就希望通过 她 来解放我们的双手👈

api 生成

名称功能示例
-o生成api文件goctl api -o user.api
new快速创建一个api服务goctl api new user
formatapi格式化,vscode使用
-dir目标目录
-iu是否自动更新goctl
-stdin是否从标准输入读取数据
validate验证api文件是否有效
-api 指定api文件源
goctl api validate -api user.api
doc生成doc markdown
-dir指定目录
goctl api doc -dir user
go生成golang api服务
-dir指定生成代码目录
-api指定api文件源
-force是否强制覆盖已存在的文件
style指定文件名命名风格,gozero: 小写,go_zero: 下划线,GoZero: 驼峰
java生成访问api服务代码-java语言
-dir指定代码存放目录
-api指定api文件源
ts生成访问api服务代码-ts语言
-dir指定代码存放目录
-api指定api文件源
webapi
caller
unwrap
dart生成访问api服务代码-dart语言
-dir指定代码存放目录
-api指定api文件源
kt生成访问api服务代码-kotlin语言
-dir指定代码存放目录
-api指定api文件源
pkg指定包名
plugin-plugin可执行文件
-dir代码存放目标文件夹
-apiapi源码文件
-style文件名命名格式化

rpc 生成

名称功能示例
new快速生成一个rpc服务
-idea标识命令是否来源于idea插件,用于idea插件开发使用,终端执行请忽略[可选参数]
-style指定文件名命名风格,gozero:小写,go_zero:下划线,GoZero:驼峰
template创建一个proto模板文件
-idea标识命令是否来源于idea插件,用于idea插件开发使用,终端执行请忽略[可选参数]
-out,o指定代码存放目录
proto根据proto生成rpc服务
-src,s指定proto文件源
-proto_path,I指定proto import查找目录,protoc原生命令,具体用法可参考protoc -h查看
-dir,d指定代码存放目录
-idea标识命令是否来源于idea插件,用于idea插件开发使用,终端执行请忽略[可选参数]
-style指定文件名命名风格,gozero:小写,go_zero:下划线,GoZero:驼峰
modelmodel层代码操作

mysql从mysql生成model代码
ddl指定数据源为ddl文件生成model代码
-src,s指定包含ddl的sql文件源,支持通配符匹配
-dir,d指定代码存放目录
-style指定文件名命名风格,gozero:小写,go_zero:下划线,GoZero:驼峰
-cache,c生成代码是否带redis缓存逻辑,bool值
-idea标识命令是否来源于idea插件,用于idea插件开发使用,终端执行请忽略[可选参数]
datasource指定数据源从数据库链接生成model代码
-url指定数据库链接
-table,t指定表名,支持通配符
-dir,d指定代码存放目录
-style指定文件名命名风格,gozero:小写,go_zero:下划线,GoZero:驼峰
-cache,c生成代码是否带redis缓存逻辑,bool值
-idea标识命令是否来源于idea插件,用于idea插件开发使用,终端执行请忽略[可选参数]

mongo从mongo生成model代码
-type,t指定Go Type名称
-cache,c生成代码是否带redis缓存逻辑,bool值,默认否
-dir,d指定代码生成目录
-style指定文件名命名风格,gozero:小写,go_zero:下划线,GoZero:驼峰

model 生成

名称功能示例
mysql从mysql生成model代码
ddl指定数据源为ddl文件生成model代码
-src,s指定包含ddl的sql文件源,支持通配符匹配
-dir,d指定代码存放目录
-style指定文件名命名风格,gozero:小写,go_zero:下划线,GoZero:驼峰
-cache,c生成代码是否带redis缓存逻辑,bool值
-idea标识命令是否来源于idea插件,用于idea插件开发使用,终端执行请忽略[可选参数]
datasource指定数据源从数据库链接生成model代码
-url指定数据库链接
-table,t指定表名,支持通配符
-dir,d指定代码存放目录
-style指定文件名命名风格,gozero:小写,go_zero:下划线,GoZero:驼峰
-cache,c生成代码是否带redis缓存逻辑,bool值
-idea标识命令是否来源于idea插件,用于idea插件开发使用,终端执行请忽略[可选参数]
mongo从mongo生成model代码
-type,t指定Go Type名称
-cache,c生成代码是否带redis缓存逻辑,bool值,默认否
-dir,d指定代码生成目录
-style指定文件名命名风格,gozero:小写,go_zero:下划线,GoZero:驼峰

template 模板操作

名称功能示例
initapi/rpc/model模板goctl template init
clean清空缓存模板goctl template clean
update更新模板
-category,c指定需要更新的分组名 api/rpc/model
goctl template update -c api
revert还原指定模板文件
-category,c指定需要更新的分组名 api/rpc/model
-name,n指定模板文件名

config 配置文件生成

名称功能示例
-path,p指定配置文件存放目录goctl config -p user

docker 生成Dockerfile

名称功能示例
-go指定main函数文件
-port指定暴露端口

upgrade goctl更新到最新版本

kube 生成k8s部署文件

deploy k8s deploymenet

名称功能示例
-name服务名称
-namespace指定k8s namespace
-image指定镜像名称
-secret指定获取镜像的k8s secret
-requestCpu指定cpu默认分配额
-requestMem指定内存默认分配额
-limitCpu指定cpu最大分配额
-limitMem指定内存最大分配额
-odeployment.yaml输出目录
-replicas指定副本数
-revisions指定保留发布记录数
-port指定服务端口
-nodePort指定服务对外暴露端口
-minReplicas指定最小副本数
-maxReplicas指定最大副本数