项目初始化
This commit is contained in:
119
README.md
Normal file
119
README.md
Normal file
@@ -0,0 +1,119 @@
|
||||
# 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)替代环境变量
|
||||
|
||||
Reference in New Issue
Block a user