Gin
项目介绍
youlai-gin 是 vue3-element-admin 的 Go 后端实现,基于 Gin + GORM,采用 RBAC 权限模型,集成 JWT / Redis,用于企业级前后端分离权限管理系统。
一句话定位:如果你需要一个"开箱即用"的 Go 权限中后台后端(认证、鉴权、数据权限、代码生成等能力齐全),选它。
核心能力
- RBAC 权限模型(用户/角色/菜单/按钮权限)
- 登录认证与会话管理(JWT / Redis Token)
- 接口鉴权(权限点校验 + 前后端联动)
- 数据权限(按角色数据范围进行 SQL 自动注入过滤)
- 代码生成(从表结构快速生成 CRUD 骨架)
- 文件上传(可选对象存储)
- 定时任务(当前未内置)
- 实时通信(SSE)
技术栈
基于仓库配置(go.mod / configs/*.yaml):
| 分类 | 技术选型 | 说明 |
|---|---|---|
| 运行时 | Go 1.25+ | 推荐使用 LTS 版本 |
| Web 框架 | Gin v1.11.0 | 轻量高性能 Web 框架 |
| 数据访问 | GORM v1.31.1 | Go ORM 库 |
| 数据库 | MySQL 5.7 ~ 8.x | 推荐 8.x |
| 缓存 | Redis 7.x | 会话与缓存 |
| 认证 | JWT v5.2.1 | 无状态认证 |
| API 文档 | Swagger | /swagger/index.html |
| 对象存储 | 本地 / 阿里云 OSS(可选) | 需自行初始化存储实例 |
目录结构
核心目录概览(详见 快速开始):
text
youlai-gin/
configs/ # 多环境配置
internal/ # 业务源码
auth/ # 认证模块
codegen/ # 代码生成模块
common/ # 公共模块(数据库/Redis/权限/日志/工具等)
file/ # 文件管理模块
message/ # SSE 实时通信
middleware/ # 中间件(JWT/CORS/限流等)
router/ # 路由注册
system/ # 系统模块(用户/角色/菜单/部门/字典/通知/日志)
pkg/ # 公共库
constant/ # 常量定义
enums/ # 枚举类型
errs/ # 统一错误类型
model/ # 通用模型(分页/选项/实体)
types/ # 自定义类型(BigInt/LocalTime)
sql/ # 初始化脚本
main.go # 入口文件必需服务
- MySQL
- Redis
