# gsadminCli
为什么会有这个工具,起因是在使用gsadmin项目开发中,有很多重复的工作,而我们真正关注应该是业务,不应该是这些重复的工作,所以就让这些工作交给gsadminCli 来处理吧。它主要能帮你创建 controller、validator、request、event、listener、model(目前仅支持Mysql)、repository。下面我们一起来看看具体怎么使用吧。
# 安装
go install github.com/sonhineboy/gsadminCli
1
# 命令介绍
命令 | 说明 |
---|---|
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
1
- 代码如下
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) {
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 创建validator
gsadminCli make:validator ./app/validators/demoValidator
1
- 代码如下
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
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 创建表模型
gsadminCli make:model ./app/models/member.go -d='root:@tcp(127.0.0.1:3306)/demo' -t=members
1
- 代码如下
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")
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21