go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。
go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的 api 文件一键生成 Go, iOS, Android, Kotlin, Dart, TypeScript, JavaScript 代码,并可直接运行。
goctl安装
goctl命令
goctl api 生成go代码命令
1
| goctl api go -api ${your_file.api} -dir ./ --style=goZero --home ${your_template}
|
- 参数详解
- -api 自行编写的api文件 语法参考
- -dir 生成代码存放的路径
- –style 生成代码文件命名风格,这里使用驼峰风格
- –home 指定自定义模版(如果没有可以不写这个参数,使用默认),想自定义模版可以参考模版定制化
goctl 生成dockerfile命令
1
| goctl docker --go main.go --exe main
|
- 参数详解
- –go 主函数启动项
- –exe 可执行文件名称一般与主函数文件名字相同
goctl grpc 生成go代码命令
1 2 3 4 5 6 7 8 9 10 11 12
| goctl rpc protoc ./pb/test.proto --go_out=./pb --go-grpc_out=./pb --zrpc_out=. -m
goctl rpc protoc ./pb/test.proto --go_out=./pb --go-grpc_out=./pb --zrpc_out=.
goctl rpc protoc \ -I /Users/qy/go/src/github.com/gogo/protobuf/gogoproto/ \ --go_out=./pb \ --go-grpc_out=./pb \ -I ./pb/ \ ./pb/attachment.proto \ --zrpc_out=.
|
- 分组生成效果参考服务分组
- 参数详解
- –go_out 是protoc里面指令参数,表示生成go文件存放路径
- –go-grpc_out 是protoc里面指令参数,表示生成go_grpc文件存放路径
- –zrpc_out 是goctl rpc protoc指令参数,表示生成代码文件存放路径