# game-simple **Repository Path**: ggyongfu/game-simple ## Basic Information - **Project Name**: game-simple - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-26 - **Last Updated**: 2025-11-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Game Simple 基于 Gin + GORM + MySQL + Redis 的游戏简单 API 项目,提供 Web API 和 H5 API 两个独立的服务器。 ## 项目结构 ``` game-simple/ ├── cmd/ │ ├── web/ # Web API 服务器(端口 8080) │ │ ├── main.go │ │ └── config.yaml # Web API 配置 │ ├── h5/ # H5 API 服务器(端口 8081) │ │ ├── main.go │ │ └── config.yaml # H5 API 配置 │ └── migrate/ # 数据库迁移工具 │ └── main.go ├── internal/ │ ├── framework/ # 业务框架层 │ │ ├── auth/ # 认证模块 │ │ ├── system/ # 系统模块 │ │ ├── router/ # 通用路由注册器 │ │ ├── web_module.go # Web API 模块 │ │ └── h5_module.go # H5 API 模块 │ └── infrastructure/ # 基础设施层 │ ├── config/ # 配置管理 │ ├── core/ # 核心基础设施(DB、Redis、Logger) │ ├── database/ # 数据库封装 │ │ ├── migrations/ # 版本化迁移文件 │ │ ├── migrator.go # AutoMigrate(开发环境) │ │ └── migrations.go # 版本化迁移(生产环境) │ ├── redis/ # Redis 封装 │ └── logger/ # 日志封装(Zap) ├── docs/ # 文档目录 └── logs/ # 日志目录 ``` ## 特性 - ✅ **双服务器架构**:Web API 和 H5 API 完全独立 - ✅ **独立配置**:每个服务器使用独立的配置文件 - ✅ **模块化设计**:清晰的模块组织结构 - ✅ **JWT 认证**:JWT + Redis 双重存储机制 - ✅ **结构化日志**:基于 Zap 的高性能日志,支持每日分割和压缩 - ✅ **Swagger 文档**:自动生成 API 文档 - ✅ **基础设施封装**:统一的 DB、Redis、Logger 封装 - ✅ **通用路由注册器**:简化路由注册,支持认证中间件 - ✅ **版本化数据库迁移**:支持 SQL 文件版本化迁移,适合生产环境 ## 快速开始 ### 1. 安装依赖 ```bash go mod download ``` ### 2. 配置数据库和 Redis 修改配置文件: - `cmd/web/config.yaml` - Web API 配置 - `cmd/h5/config.yaml` - H5 API 配置 ### 3. 启动服务器 **方式一:分别启动(推荐)** ```bash # 终端 1:启动 Web API make run-web # 终端 2:启动 H5 API make run-h5 ``` **方式二:直接运行** ```bash # 终端 1 go run cmd/web/main.go # 终端 2 go run cmd/h5/main.go ``` ### 4. 访问 API - **Web API**:`http://localhost:8080/api` - **H5 API**:`http://localhost:8081/api` - **Swagger 文档(Web)**:`http://localhost:8080/swagger/index.html` - **Swagger 文档(H5)**:`http://localhost:8081/swagger/index.html` ## 数据库迁移 ### 开发环境(自动迁移) 在配置文件中启用 `auto_migrate: true`,应用启动时自动执行迁移。 ### 生产环境(版本化迁移) ```bash # 创建迁移文件 go run cmd/migrate/main.go -cmd=create add_user_avatar # 执行迁移 make migrate # 查看迁移状态 make migrate-status # 回滚迁移 go run cmd/migrate/main.go -cmd=rollback -version=001 -config=cmd/web/config.yaml ``` 详细文档:请参考 [数据库迁移指南](./docs/MIGRATION_GUIDE.md) ## 构建 ```bash # 构建所有服务器 make build # 分别构建 make build-web # Web API make build-h5 # H5 API ``` ## Swagger 文档 生成 Swagger 文档: ```bash # 生成所有文档 make swagger # 分别生成 make swagger-web # Web API 文档 make swagger-h5 # H5 API 文档 ``` 生成后,取消注释对应 `main.go` 中的 docs 导入。 ## 配置说明 ### Web API 配置 (`cmd/web/config.yaml`) - 端口:`8080` - Redis 数据库:`0` - JWT Token 过期:`24` 小时 - 日志文件:`logs/web-api.log` - 自动迁移:`auto_migrate: true`(开发)/ `false`(生产) ### H5 API 配置 (`cmd/h5/config.yaml`) - 端口:`8081` - Redis 数据库:`1` - JWT Token 过期:`48` 小时(更长) - 日志文件:`logs/h5-api.log` - 自动迁移:`auto_migrate: true`(开发)/ `false`(生产) ## API 端点 ### 认证接口 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/logout` - 用户登出 - `POST /api/auth/refresh` - 刷新 Token - `GET /api/auth/me` - 获取当前用户信息 ### 用户管理接口 - `POST /api/users` - 创建用户 - `GET /api/users/:id` - 获取用户信息 - `PUT /api/users/:id` - 更新用户信息 - `DELETE /api/users/:id` - 删除用户 ## 模块架构 每个模块包含以下层级结构: ``` auth/ ├── controllers/ # 控制器层 ├── services/ # 服务层 ├── models/ # 模型层 ├── dto/ # 数据传输对象 ├── middleware/ # 中间件 └── module.go # 模块路由注册 ``` ## 技术栈 - **Web 框架**:Gin - **ORM**:GORM - **数据库**:MySQL - **缓存**:Redis - **日志**:Zap + Lumberjack(每日分割、压缩) - **认证**:JWT - **文档**:Swagger ## 文档 - [API 服务器说明](./docs/API_SERVERS.md) - [数据库迁移指南](./docs/MIGRATION_GUIDE.md) ⭐ **生产环境必读** - [数据库迁移快速开始](./docs/MIGRATION_QUICK_START.md) - [自动迁移说明](./docs/AUTO_MIGRATE.md) - [Swagger 使用说明](./docs/SWAGGER_USAGE.md) - [路由注册器使用](./docs/ROUTER_USAGE.md) - [模块结构说明](./docs/MODULE_STRUCTURE.md) - [基础设施使用](./docs/INFRASTRUCTURE_USAGE.md) - [JWT 和 Redis 集成](./docs/JWT_REDIS.md) ## Makefile 命令 ```bash make run-web # 启动 Web API make run-h5 # 启动 H5 API make build # 构建所有服务器 make build-web # 构建 Web API make build-h5 # 构建 H5 API make migrate # 执行数据库迁移 make migrate-status # 查看迁移状态 make swagger # 生成所有 Swagger 文档 make swagger-web # 生成 Web API 文档 make swagger-h5 # 生成 H5 API 文档 make clean # 清理构建产物和日志 make test # 运行测试 ``` ## License MIT