命令行工具
cwgo 是 CloudWeGo 提供的用于生成代码的一个命令行工具。目前 cwgo 支持 thrift 和 protobuf 的 IDL,支持生成 MVC Layout、Server、Client 和 DB 的代码。
依赖与运行模式
cwgo 工具并不直接生成代码,而是构造好模板后调用相应工具的生成函数。
所以相对应工具的注意事项也需要遵守, 如生成 RPC 代码时 kitex 的注意事项和生成 HTTP 代码时 hz 的注意事项。
使用
cwgo 支持交互式命令行和静态命令行两种生成方式。并且弱化了 new 和 update 的概念,更新时直接输入之前的指令即可。
交互式命令行
交互式命令行支持一次调用生成所有代码,如 Server、Client、DB,满足大部分用户的需求,用户只需要根据提示输入信息即可。
语法:cwgo init
执行 cwgo init
后,会首先询问需要生成的项目类型,支持多选,如下图所示,选择了 server 和 client
敲回车后,会依次询问 server 和 client 的信息。步骤如下
-
选择服务类型,RPC 还是 HTTP。单选。
-
输入服务名称。必填。
-
输入 go module 名称。在 GOPATH 外为必填,在 GOPATH 内不需要填。
-
输入 idl 路径。必填。
-
是否使用默认配置去生成项目
- 默认配置:无服务发现组件,无其他参数
- 非默认配置:选择服务发现组件;输入传递给生成工具的参数
client 询问的问题和 server 大致相同,区别是会首先询问生成的 client 的数量,之后循环输入每一个 client 的信息。
db 询问的信息为:
- 选择数据库类型。单选
- 输入数据库 DSN。必填
- 选择是否使用默认配置去生成项目。如选择否,则会要求输入传递给生成工具的参数
对于传递给工具的参数,hz 参考文档,kitex 参考文档。
静态命令行
命令说明
Server 和 Client 命令
pass 参数说明:
如传递 hz
的 `handler_dir" 参数, 则应输入 –pass “–handler_dir ./handler”
Model 命令
常用命令
Server
Client
Model
最后修改
December 1, 2023
: docs: translate multiple service guide (#870) (228621b)