自定义脚手架模板
Kitex 支持了自定义模板功能,如果默认的模板不能够满足大家的需求,大家可以使用 Kitex 的自定义模板功能。目前支持了单文件渲染和根据 methodInfo 循环渲染。
如何使用
- 模板使用的数据为
PackageInfo
,认为这部分内包含所有的元数据,如methodInfo
等,用户只需要传递模板文件即可,模板内的数据为PackageInfo
数据。 - 模板渲染只能渲染单个文件内容,如果涉及到按照
methods
分文件渲染的话,需要在代码中控制。 - 模板文件通过 yaml 文件夹传递,通过
--template-dir
命令行参数指定。因为所有模板写到一个文件中会导致该文件巨大,所以改为指定文件夹。 - 文件夹内的
extensions.yaml
为特定文件,该文件的内容为扩展 Service 代码的配置文件。如果该文件存在的话,则不用再传递template-extension
参数。 - 更新时,目前支持覆盖、跳过、根据 methods 增加文件(
loop_method
为 true)、在文件末尾追加四种方式(loop_method
为 false),通过loop_method
和update_behavior
中的 key 字段共同确定。update_behavior 中的 key 字段值有三种:skip
/cover
/append
。其中append
在开启了loop_method
后为新增加文件;在不开启loop_method
时为追加到文件末尾,通过指定更新时的key
判断是否需要追加。 - Kitex 代码生成分成两部分,kitex_gen 和 mainPkg(剩下的 main.go、handler.go )等等,kitex_gen 无论采用何种生成都不会改变;mainPkg 和 custom layout 只能二选一,如果制定了 custom layout 就不会再生成 mainPkg。
使用场景
当默认的脚手架模板不能够满足用户的需求,比如想要生成 MVC Layout、统一进行错误处理等。
使用方式
Yaml 文件配置
示例 tpl:
https://github.com/cloudwego/cwgo/tree/main/tpl/kitex
附录
PackageInfo 结构体常用内容
最后修改
April 2, 2025
: doc(Eino): fix a typo (#1294) (048e436)