goctl template一定制化服务配置生成

GoctlTemplate是用于数据驱动的代码生成工具,支持API、RPC、模型等的生成。开发者可以将模板落盘修改,通过`goctlapi`和`goctlrpc`等命令结合`--home`选项指定模板目录,自定义生成代码。在Windows环境下,`goctltemplateinit`会创建模板文件夹。修改tpl文件后,使用相应命令能生成定制的目录结构,提供更灵活的代码自动化生成方案。
摘要由CSDN通过智能技术生成

官网介绍:

模板(Template)是数据驱动生成的基础,所有的代码(rest api、rpc、model、docker、kube)生成都会依赖模板, 默认情况下,模板生成器会选择内存中的模板进行生成,而对于有模板修改需求的开发者来讲,则需要将模板进行落盘, 从而进行模板修改,在下次代码生成时会加载指定路径下的模板进行生成。

简单来水goctl template可以一键化生成api,rpc,model的配置文件,在之前的demo中都是使用如下命令生成代码:

## 生成api
goctl api new demo

## 生成rpc
goctl rpc new demo

以及其他CLI命令

在这里插入图片描述
每需要一个配置文件都需要使用对应的cli是很麻烦的,而且会生成许多不需要的文件,goctl就可以一键化生成所有的配置文件,而无需调用单个的cli生成命令。

在这里插入图片描述
对于windows的开发,在安装了goctl的情况下,直接使用goctl template init会在用户目录生成一个文件.goctl

在这里插入图片描述
进入该目录是一个以goctl版本为名称的目录,复制该目录到项目下:

在这里插入图片描述

那么常用的api,rpc文件夹就是生成api服务,rpc服务的模板

在这里插入图片描述
通过这些定义了服务的模板就可以生成对应的目录和文件,那么如何通过该这些tpl模板生成源文件呢?

给任意goctl命令添加–home 选项指定templete目录就可以根据tpl模板生成对应的配置文件。

在这里插入图片描述
通过goctl api -home [tmmplate_path] -o [output_path]

在这里插入图片描述

tmmplate_path是从.goctl复制到项目的目录,也就是goctl版本为目录的上一级目录;output_path是输出目录。

如下是初始目录,只有goctl的template目录

在这里插入图片描述
使用goctl api -home命令,如下

goctl api -home ./goctltpl -o C:\xwh\go-learn\goctl-tpl\demoapi.api

在这里插入图片描述
在设置的输出目录生成了api文件,注意文件一定要带上.api后缀,不然生成的文件没有后缀。
在这里插入图片描述
如下所示生成了api文件

在这里插入图片描述

通过goctl template生成了一个api文件,api文件是构建api服务的关键,那么可以看出,goctl template的作用是用来定制化api服务。

goctl api go --api [dir] --dir [target]可知生成一个api服务目录,如下

在这里插入图片描述
但是其内部的内容是不变的,不了在任何位置使用插件都是一样的,但是通过tpl文件就可以定制化操作,生成自定义的目录结构。

通过go template init生成goctl template文件后,每个tpl文件修改,如下

在这里插入图片描述
tpl文件和生成api目录部分对应,有些实现了融合,对tpl修改之后在使用goctl api go --api [dir] --dir [target] --home [tpl目录]就不再生成默认的目录结构了,而是定制的目录结构。

例如,不指定定制的goctl template是任然通过默认的生成

在这里插入图片描述
在这里插入图片描述

如下所示,实现定制化配置:

  1. 修改部分tpl
    在这里插入图片描述
    在这里插入图片描述

  2. 使用修改后的tpl配置
    在这里插入图片描述

  3. 查看是否完成

配置生效,多出了tpl的配置
在这里插入图片描述
方法生效,多出了之前的配置
在这里插入图片描述
使用go template实现了定制的服务代码自动生成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xvwen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值