Files
RelationshipManagement-backend/README.md
2025-12-10 19:03:24 +08:00

3.2 KiB
Raw Blame History

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. 安装依赖:
go mod tidy
  1. 配置数据库(可选,修改环境变量或代码中的默认值)

  2. 运行项目:

go run main.go
  1. 访问健康检查接口:
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.goAutoMigrate() 函数中添加新模型的自动迁移
  3. 根据实际需求调整中间件和配置
  4. 生产环境建议使用配置文件(如 YAML、JSON替代环境变量