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 (可选,用于容器化部署)
安装依赖
go mod tidy
配置环境变量
复制.env.example文件并根据需要修改配置:
cp .env.example .env
启动服务
方法1:直接运行(需要本地安装Go和MySQL)
./start_dev.sh
方法2:使用Docker(推荐)
# 构建并启动所有服务
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等工具查看文档。
部署
使用Docker部署
# 构建镜像
docker build -t niumall-go-backend .
# 运行容器
docker run -p 8080:8080 niumall-go-backend
使用Docker Compose部署
# 在生产环境中启动服务
docker-compose up -d
开发指南
代码结构
main.go: 程序入口,负责初始化和启动服务config/: 数据库连接等配置models/: 数据模型定义controllers/: 业务逻辑处理routes/: 路由注册middleware/: 中间件utils/: 工具函数
添加新功能
- 在
models/目录下创建数据模型 - 在
controllers/目录下创建控制器 - 在
routes/routes.go中注册路由 - 更新
docs/目录下的API文档
测试
运行单元测试:
go test -v ./...
故障排除
网络连接问题
如果在构建Docker镜像时遇到网络连接问题,请配置Docker使用国内镜像源:
- 在Docker Desktop中打开Settings → Docker Engine
- 添加以下配置:
{ "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com" ] } - 点击"Apply & Restart"
数据库连接问题
确保MySQL服务正在运行,并且在.env文件中配置了正确的数据库连接信息。