命令行工具
cwgo 是 CloudWeGo 提供的用于生成代码的一个命令行工具。目前 cwgo 支持 thrift 和 protobuf 的 IDL,支持生成 MVC Layout、Server、Client 和 DB 的代码。
依赖与运行模式
cwgo 工具并不直接生成代码,而是构造好模板后调用相应工具的生成函数。
cwgo
|
| HTTP server / client
|-----------> hz
| RPC server / client
|-----------> kitex
| DB
------------> gorm/gen
所以相对应工具的注意事项也需要遵守, 如生成 RPC 代码时 kitex 的注意事项和生成 HTTP 代码时 hz 的注意事项。
使用
cwgo 支持静态命令行生成方式。并且弱化了 new 和 update 的概念,更新时直接输入之前的指令即可。
命令说明
$ cwgo -h
NAME:
cwgo - All in one tools for CloudWeGo
USAGE:
cwgo [global options] command [command options] [arguments...]
COMMANDS:
server 生成 RPC 或者 HTTP Server
client 生成 RPC 或者 HTTP Client
model 生成 DB Model
fallback 回退到 kitex 或者 hz 工具
GLOBAL OPTIONS:
--verbose 打开冗余日志模式
--version, -v 打印工具版本
Server 和 Client 命令
--service 指定服务名称
--type 指定生成类型
--module 指定生成 module 名称
--idl 指定 IDL 文件路径
--out_dir 指定输出路径
--template 指定 layout 模板路径
--registry 指定服务注册组件
--proto_search_path 添加 IDL 搜索路径,只对 pb 生效
--pass value 传递给 hz 和 kitex 的参数
pass 参数说明:
如传递 hz
的 `handler_dir" 参数, 则应输入 –pass “–handler_dir ./handler”
Model 命令
--dsn 指定数据库 DSN
--db_type 指定数据库类型
--out_dir 指定输出文件夹,默认 biz/dao/query
--out_file 指定输出文件名,默认 gen.go
--tables 指定数据库表名称
--unittest 是否生成单测,默认不生成
--only_model 是否只生成 model 代码,默认关闭
--model_pkg 指定 model package 名
--nullable 当字段为 null 时,指定是否生成指针,默认关闭
--signable 是否检测整型列 unsigned 类型来调整生成相应的数据类型,默认不生成
--type_tag 是否给字段生成 gorm column type tag,默认不生成
--index_tag 是否给字段生成 gorm index tag,默认不生成
常用命令
Server
cwgo server --type {{RPC/HTTP}} --idl {{path/to/IDL_file.thrift}} --service {{svc_name}}
Client
cwgo client --type {{RPC/HTTP}} --idl {{path/to/IDL_file.thrift}} --service {{svc_name}}
Model
cwgo model --db_type mysql --dsn "gorm:gorm@tcp(localhost:9910)/gorm?charset=utf8&parseTime=True&loc=Local"
最后修改
January 24, 2024
: docs: delete cwgo init (#940) (2310167)