CRUD生成
约 460 字大约 2 分钟
2025-06-17
功能概述
本工具用于快速生成基于 Gin 和 GORM 的 MVC 结构代码,包含以下组件:
- Model(模型)
- Controller(控制器)
- Service(服务层)
- Repository(数据访问层)
安装与使用
1. 安装
go install github.com/zmqge/vireo-gin-admin/cmd/generator@latest2. 基本使用
# 基本命令
go run cmd/generator/main.go -entity=Dict -path=app/admin
# 完整参数
go run cmd/generator/main.go -entity=Dict -module=github.com/zmqge/vireo-gin-admin -path=app/admin3. 参数说明
| 参数 | 必填 | 说明 | 示例值 |
|---|---|---|---|
| -entity | 是 | 实体名称(首字母大写) | Dict |
| -module | 否 | Go模块路径(自动检测当前项目) | github.com/yourproject |
| -path | 否 | 输出目录(默认为当前目录) | app/admin |
生成的文件结构
app/admin/
├── controllers/
│ └── dictController.go
├── models/
│ └── dictModel.go
├── repositories/
│ └── dictRepository.go
└── services/
└── dictService.go功能特性
1. 自动生成的API端点
| 方法 | 路径 | 描述 |
|---|---|---|
| GET | /dicts/:id | 获取单个字典 |
| GET | /dicts | 获取字典列表 |
| POST | /dicts | 创建字典 |
| PUT | /dicts/:id | 更新字典 |
| DELETE | /dicts/:id | 删除字典 |
2. 自动权限控制
生成的代码包含权限注解,可与权限系统集成:
// @Permission(code="dict:view", desc="查看字典详情")3. 统一响应格式
使用 github.com/zmqge/vireo-gin-admin/pkg/response 包返回统一格式的响应:
成功响应:
{
"code": 0,
"data": {},
"msg": "success"
}错误响应:
{
"code": 400,
"error": "Invalid ID"
}自定义模板
如需修改生成模板,可以:
- 克隆项目代码
- 修改
main.go中的模板常量 - 重新编译安装
注意事项
- 确保项目已初始化 Go module (
go mod init) - 生成的代码需要配合以下依赖:
github.com/gin-gonic/gingorm.io/gorm- 项目自有的
response包
示例输出
生成 Dict 实体后的控制器示例:
func (c *DictController) getDict(ctx *gin.Context) {
idStr := ctx.Param("id")
id, err := strconv.ParseUint(idStr, 10, 64)
if err != nil {
response.BadRequest(ctx, "Invalid ID")
return
}
entity, err := c.service.GetDictByID(uint(id))
if err != nil {
response.Error(ctx, err)
return
}
response.Success(ctx, entity)
}