gsadmin发布脚手架工具 gsadminCli 助力快速开发

gsadmin

GS Admin=gin+gorm+scui 它是golang 开发的一个企业级后台。遵循MIT开源协议。前端框架是scui,SCUI基于 Vue3、elementPlus 持续性的提供独家组件和丰富的业务模板帮助你快速搭建企业级中后台前端任务。后端框架是gin,Gin是一个golang的微框架,封装比较优雅,具有快速灵活,容错方便等特点。内置了权限管理、用户管理等基础模块儿,还支持了事件服务,方便业务解耦。后续会根据用户的反馈更新内容!

gsadminCli

为什么会有这个工具,起因是在使用gsadmin项目开发中,有很多重复的工作,而我们真正关注应该是业务,不应该是这些重复的工作,所以就让这些工作交给gsadminCli 来处理吧。它主要能帮你创建 controller、validator、request、event、listener、model(目前仅支持Mysql)、repository。下面我们一起来看看具体怎么使用吧。

安装

go install github.com/sonhineboy/gsadminCli

命令介绍

命令 说明
make:controller 创建控制器
make:validator 创建自定义验证器
make:request 创建请求结构体
make:event 创建事件
make:listener 创建事件监听者
make:model 创建表模型
make:repository 创建仓储业务

参数

参数 说明
-v 查看版本
-h 查看帮助信息

子命令参数

参数 说明
--package 如果是在根目录创建;必填
-h 查看帮助信息
-t --table 表名 make:model 可用
-d --dns 数据库连接dns make:model 可用

部分演示

创建 controller

gsadminCli make:controller ./app/controllers/demoController --package=controllers
  • 代码如下
    
    package controllers
    import (
    "github.com/gin-gonic/gin"
    )

type DemoController struct{}

func (controller DemoController) Index(ctx gin.Context) {
}

func (controller DemoController) Save(ctx gin.Context) {

}

func (controller DemoController) Edit(ctx gin.Context) {
}

func (controller DemoController) Delete(ctx gin.Context) {

}

func (controller DemoController) Get(ctx gin.Context) {

}


#### 创建validator

gsadminCli make:validator ./app/validators/demoValidator


- 代码如下

package validators

import (
"github.com/go-playground/validator/v10"
"github.com/sonhineboy/gsadminValidator/ginValidator"
)

type DemoValidator struct {
ginValidator.BaseValidator
}

//自定义验证名称 TagName
func (d *DemoValidator) TagName() string {
return "Demo"
}

//错误提示信息 Messages
func (d *DemoValidator) Messages() string {
//This is error message
return ""
}

//验证规则 Validator true 通过 false 未通过
func (d *DemoValidator) Validator(fl validator.FieldLevel) bool {
//To Do .....
return true
}


#### 创建表模型

gsadminCli make:model ./app/models/member.go -d='root:@tcp(127.0.0.1:3306)/demo' -t=members

- 代码如下

package models

import (
"fmt"
"github.com/sonhineboy/gsadmin/service/global"
)

type Member struct {
global.GsModel
Name string gorm:"column:name;json:name"
Email string gorm:"column:email;json:email"
Age int8 gorm:"column:age;json:age"
Birthday string gorm:"column:birthday;json:birthday"
MemberNumber string gorm:"column:member_number;json:member_number"
ActivatedAt string gorm:"column:activated_at;json:activated_at"
}

func (m *Member) TableName() string {
return fmt.Sprint(global.Config.Db.TablePrefix, "members")
}

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!