Files
niumalll/go-backend/README.md

3.0 KiB
Raw Blame History

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/: 工具函数

添加新功能

  1. models/目录下创建数据模型
  2. controllers/目录下创建控制器
  3. routes/routes.go中注册路由
  4. 更新docs/目录下的API文档

测试

运行单元测试:

go test -v ./...

故障排除

网络连接问题

如果在构建Docker镜像时遇到网络连接问题请配置Docker使用国内镜像源

  1. 在Docker Desktop中打开Settings → Docker Engine
  2. 添加以下配置:
    {
      "registry-mirrors": [
        "https://docker.mirrors.ustc.edu.cn",
        "https://hub-mirror.c.163.com"
      ]
    }
    
  3. 点击"Apply & Restart"

数据库连接问题

确保MySQL服务正在运行并且在.env文件中配置了正确的数据库连接信息。