# NiūMall Go后端 这是一个使用Go语言和Gin框架构建的后端服务,为NiūMall活牛采购智能数字化系统提供API支持。 ## 目录结构 ``` go-backend/ ├── config/ # 配置文件 ├── controllers/ # 控制器 ├── docs/ # API文档 ├── middleware/ # 中间件 ├── models/ # 数据模型 ├── routes/ # 路由定义 ├── utils/ # 工具函数 ├── main.go # 主程序入口 ├── go.mod # Go模块定义 ├── go.sum # Go模块校验和 ├── .env.example # 环境变量示例 ├── .env # 本地环境变量配置 ├── Dockerfile # Docker构建文件 ├── docker-compose.yml # Docker编排文件 ├── Makefile # 构建脚本 ├── start_dev.sh # 本地开发启动脚本 └── README.md # 项目说明 ``` ## 本地开发 ### 环境要求 - Go 1.21或更高版本 - MySQL 8.0或更高版本 - Docker (可选,用于容器化部署) ### 安装依赖 ```bash go mod tidy ``` ### 配置环境变量 复制`.env.example`文件并根据需要修改配置: ```bash cp .env.example .env ``` ### 启动服务 #### 方法1:直接运行(需要本地安装Go和MySQL) ```bash ./start_dev.sh ``` #### 方法2:使用Docker(推荐) ```bash # 构建并启动所有服务 docker-compose up -d # 查看服务状态 docker-compose ps # 查看服务日志 docker-compose logs -f ``` ### API文档 API文档位于`docs/`目录下,使用OpenAPI 3.0规范编写: - 用户管理: `docs/users.yaml` - 订单管理: `docs/orders.yaml` - 支付管理: `docs/payments.yaml` 可以使用[Swagger UI](https://editor.swagger.io/)等工具查看文档。 ## 部署 ### 使用Docker部署 ```bash # 构建镜像 docker build -t niumall-go-backend . # 运行容器 docker run -p 8080:8080 niumall-go-backend ``` ### 使用Docker Compose部署 ```bash # 在生产环境中启动服务 docker-compose up -d ``` ## 开发指南 ### 代码结构 - `main.go`: 程序入口,负责初始化和启动服务 - `config/`: 数据库连接等配置 - `models/`: 数据模型定义 - `controllers/`: 业务逻辑处理 - `routes/`: 路由注册 - `middleware/`: 中间件 - `utils/`: 工具函数 ### 添加新功能 1. 在`models/`目录下创建数据模型 2. 在`controllers/`目录下创建控制器 3. 在`routes/routes.go`中注册路由 4. 更新`docs/`目录下的API文档 ### 测试 运行单元测试: ```bash go test -v ./... ``` ## 故障排除 ### 网络连接问题 如果在构建Docker镜像时遇到网络连接问题,请配置Docker使用国内镜像源: 1. 在Docker Desktop中打开Settings → Docker Engine 2. 添加以下配置: ```json { "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com" ] } ``` 3. 点击"Apply & Restart" ### 数据库连接问题 确保MySQL服务正在运行,并且在`.env`文件中配置了正确的数据库连接信息。