# gin-web **Repository Path**: jeffery_yangs_world/gin-web ## Basic Information - **Project Name**: gin-web - **Description**: 单体架构下以gin为基础的goweb框架初始架构: 技术栈:gin + gorm + redis + mq + zap + robfig/cron + swaggo + jwt - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-17 - **Last Updated**: 2025-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Gin Web Framework Demo 基于Gin框架的Web项目,集成了以下组件: - Gin: Web框架 - GORM: ORM框架 - MySQL: 数据库 - Redis: 缓存 - RabbitMQ: 消息队列 - XXL-Job: 分布式任务调度 - Swagger: API文档 - JWT: 认证 - Viper: 配置管理 ## 项目结构 ``` . ├── config/ # 配置文件 ├── internal/ # 内部代码 │ ├── controller/ # 控制器 │ ├── dao/ # 数据访问 │ ├── middleware/ # 中间件 │ ├── model/ # 数据模型 │ ├── router/ # 路由 │ └── service/ # 业务逻辑 ├── pkg/ # 公共代码 └── scripts/ # 脚本 ``` ## 配置文件 配置文件使用INI格式,包含以下配置: - MySQL配置 - Redis配置 - RabbitMQ配置 - XXL-Job配置 - JWT配置 ## swaggo使用: ### 注意:一定要使用该注解,否则swagger文档无法生成 方法注释: ```go // TestV2 godoc // 测试demo // @Summary 测试v2接口 // @Description 这是 v2 的接口 // @Tags user // @Accept json // @Produce json // @Success 200 {object} User // @Router /v2/user/1 [get] func (c *UserController) TestV2(ctx *gin.Context) { response.Success(ctx, "200") } // TestV1 godoc // 测试demo // @Summary 测试v1接口 // @Description 这是 v1 的接口 // @Tags user // @Accept json // @Produce json // @Success 200 {object} User // @Router /v1/user/1 [get] func (c *UserController) TestV1(ctx *gin.Context) { response.Success(ctx, "200") } ``` 以上v1为v1版本 v2为v2版本 生成swagger文件: ```shell swag init -g cmd/main.go ``` 格式化注释: ```shell swag fmt ``` 查看更多执行: ```shell swag init -h ``` model层必须使用// 注释字段中每个值对应的结果例如: ```shell Status int `json:"status" gorm:"default:1"` // 1:正常 0:禁用 ```