• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

gin框架实践[Go-Gin_Api]2.0 工具篇续集

武飞扬头像
Rocket
帮助1

Hello,我是Rocket

  • 新增支持生成command、service、controller、view,源码就在项目里
  • github传送门
  • 喜欢的铁子们给点个star
  • 没有看过上一篇文章的老铁们从这进传送门
  • tpl模板在cmd/tpl下

1、make:command 生成命令

核心方法:util.CommandCreate

1、判断文件是否存在
2、生成文件
3、通过text/template 写入文件内容

func CommandCreate(use, fileName, cmdName, cmdParent string) error {
	cmdFilePath := fmt.Sprintf("%s.go", fileName)
	cmdFile, err := tool.CreateFile(cmdFilePath)
	if err != nil {
		return err
	}
	defer cmdFile.Close()

	c := commandStruct{
		Use:       use,
		CmdName:   cmdName,
		CmdParent: cmdParent,
	}
	commandTemplate := template.Must(template.New("sub").Parse(tpl.AddCommandTemplate()))
	err = commandTemplate.Execute(cmdFile, c)
	if err != nil {
		return err
	}
	return nil
}

2、make:service 生成服务层

代码在cmd/make-service.go

核心代码:util.ServiceCreate

func ServiceCreate(model, fileName, path string) (string, error) {
	...省略
	//简析model
	s := serviceStruct{
		Package:     Package, //tpl里{{.Package}}
		ModelImport: ModelImport,
		ModelName:   ModelName,
		ModelStruct: ModelStruct, //类似models.SysMenu
	}

	serviceTemplate := template.Must(template.New("ser").Parse(tpl.ServiceTemplate()))
	err = serviceTemplate.Execute(File, s)
	if err != nil {
		return path   fileName, err
	}
	return path   fileName, nil
}

3、make:controller 生成控制器层

代码在cmd/make-controller.go

核心代码:util.ControllerCreate

func ControllerCreate(path, name, model, service string) (string, error) {
        ...省略

	s := controllerStruct{
		Package:        Package,
		ControllerName: ControllerName,
		ViewName:       ViewName,
		Name:           name,
		ModelImport:    ModelImport,
		ModelStruct:    ModelStruct,
		ServiceImport:  serviceImport,
		ServicePackage: servicePackage,
		ServiceName:    serviceName,
	}

	controllerTemplate :=template.Must(template.New("ser").Parse(tpl.ControllerTemplate()))
	err = controllerTemplate.Execute(File, s)
	if err != nil {
		return fileName, err
	}
	return fileName, nil
}

4、make:view 生成视图

代码在cmd/make-view.go

核心代码:

func ViewCreate(path, desc string) error {

	...省略

	v := viewStruct{
		Default: path,
		Desc:    desc,
	}

	controllerTemplate := template.Must(template.New("view").Delims("<!--{", "}-->").Parse(tpl.ViewTemplate()))
	err = controllerTemplate.Execute(File, v)
	if err != nil {
		return err
	}
	return nil
}

5、后续计划

下一篇文章准备给大家整合cmd命令,10分钟快速实现一个功能的增删改查(包括页面、权限、按钮、弹窗等等)

6. 系列文章

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhbebjch
系列文章
更多 icon
同类精品
更多 icon
继续加载