# RelationshipManagement-backend 基于 Gin 框架的分层架构后端项目 ## 项目结构 ``` RelationshipManagement-backend/ ├── main.go # 应用入口 ├── go.mod # Go 模块依赖 ├── config/ # 配置层 │ └── config.go # 配置管理 ├── model/ # 数据模型层 │ └── user.go # 用户模型 ├── dao/ # 数据访问层 (Data Access Object) │ ├── db.go # 数据库连接 │ └── user_dao.go # 用户数据访问 ├── service/ # 业务逻辑层 │ └── user_service.go # 用户服务 ├── handler/ # 处理器层 (Controller) │ └── user_handler.go # 用户处理器 ├── router/ # 路由层 │ └── router.go # 路由配置 └── middleware/ # 中间件 ├── cors.go # 跨域中间件 ├── logger.go # 日志中间件 └── recovery.go # 恢复中间件 ``` ## 架构说明 ### 分层架构 1. **Router 层** (`router/`) - 负责路由配置和请求分发 - 将 HTTP 请求路由到对应的 Handler 2. **Handler 层** (`handler/`) - 处理 HTTP 请求和响应 - 参数验证和绑定 - 调用 Service 层处理业务逻辑 3. **Service 层** (`service/`) - 业务逻辑处理 - 数据验证和业务规则 - 调用 DAO 层进行数据操作 4. **DAO 层** (`dao/`) - 数据访问对象 - 数据库 CRUD 操作 - 数据库连接管理 5. **Model 层** (`model/`) - 数据模型定义 - 数据库表结构映射 6. **Config 层** (`config/`) - 配置管理 - 环境变量读取 7. **Middleware 层** (`middleware/`) - 全局中间件 - CORS、日志、错误恢复等 ## 环境配置 通过环境变量配置(可选,有默认值): - `SERVER_PORT`: 服务器端口(默认: 8080) - `GIN_MODE`: Gin 模式(debug/release/test,默认: debug) - `DB_HOST`: 数据库主机(默认: localhost) - `DB_PORT`: 数据库端口(默认: 3306) - `DB_USER`: 数据库用户(默认: root) - `DB_PASSWORD`: 数据库密码(默认: 空) - `DB_NAME`: 数据库名称(默认: relationship_db) ## 运行项目 1. 安装依赖: ```bash go mod tidy ``` 2. 配置数据库(可选,修改环境变量或代码中的默认值) 3. 运行项目: ```bash go run main.go ``` 4. 访问健康检查接口: ``` GET http://localhost:8080/health ``` ## API 接口 ### 用户相关接口 - `POST /api/users` - 创建用户 - `GET /api/users` - 获取用户列表(支持分页) - `GET /api/users/:id` - 根据ID获取用户 - `PUT /api/users/:id` - 更新用户 - `DELETE /api/users/:id` - 删除用户 ## 依赖说明 - **gin**: Web 框架 - **gorm**: ORM 框架 - **mysql**: MySQL 数据库驱动 - **logrus**: 日志库 ## 开发建议 1. 添加新的业务模块时,按照相同的分层结构创建文件 2. 在 `dao/db.go` 的 `AutoMigrate()` 函数中添加新模型的自动迁移 3. 根据实际需求调整中间件和配置 4. 生产环境建议使用配置文件(如 YAML、JSON)替代环境变量