数游科技 Go 版本后台管理系统
ShuYou-Go/
├── cmd/ # 应用程序入口
│ └── server/
│ └── main.go # 主程序入口
├── internal/ # 私有应用代码
│ ├── api/ # API 路由和处理器
│ │ ├── v1/ # API 版本1
│ │ │ ├── handler/ # HTTP 处理器
│ │ │ └── router.go # 路由定义
│ │ └── middleware/ # 中间件
│ ├── service/ # 业务逻辑层
│ ├── repository/ # 数据访问层
│ ├── model/ # 数据模型
│ ├── config/ # 配置管理
│ ├── utils/ # 工具函数
│ └── pkg/ # 可复用的内部包
├── pkg/ # 可被外部应用使用的库代码
│ ├── logger/ # 日志包
│ ├── validator/ # 验证器
│ └── response/ # 响应封装
├── configs/ # 配置文件
│ ├── config.yaml # 主配置文件
│ └── config.dev.yaml # 开发环境配置
├── migrations/ # 数据库迁移文件
├── scripts/ # 脚本文件
├── docs/ # 文档
├── web/ # 前端静态文件(可选)
├── tests/ # 测试文件
└── logs/ # 日志文件
- Web 框架: Gin v1.10.1
- ORM: GORM v1.25.12
- 配置管理: Viper v1.19.1
- 日志: Zap v1.27.0
- JWT 认证: golang-jwt/jwt v5.2.1
- 参数验证: go-playground/validator v10.22.1
- 密码加密: golang.org/x/crypto v0.28.0
- 日志轮转: lumberjack v2.2.1
go mod download
go mod tidy编辑 configs/config.yaml 文件,配置数据库连接信息:
database:
driver: "mysql"
host: "127.0.0.1"
port: 3306
user: "root"
password: "your_password"
dbname: "shuyou_db"# 使用 Makefile
make run
# 或直接运行
go run cmd/server/main.gomake migratemake buildmake run- 运行项目make build- 构建项目make test- 运行测试make clean- 清理构建文件make deps- 安装依赖make fmt- 格式化代码
POST /api/v1/users/register- 用户注册POST /api/v1/users/login- 用户登录
GET /api/v1/users/profile- 获取用户信息PUT /api/v1/users/profile- 更新用户信息
- ✅ 分层架构(Handler -> Service -> Repository)
- ✅ JWT 认证中间件
- ✅ 日志记录(文件 + 控制台)
- ✅ 配置管理(支持多环境)
- ✅ 数据库连接池管理
- ✅ 优雅关闭服务器
- ✅ CORS 跨域支持
- ✅ 统一响应格式
- ✅ 参数验证
-
代码分层:
handler: 处理 HTTP 请求和响应service: 业务逻辑处理repository: 数据访问层model: 数据模型定义
-
错误处理:使用统一的响应格式返回错误
-
日志记录:使用
pkg/logger包记录日志 -
配置管理:所有配置项都在
configs/config.yaml中