字节笔记本

2026年3月22日

newbee-mall-api-go:新蜂商城 Go 语言后端

本文介绍 newbee-mall-api-go,新蜂商城电商系统的 Go 语言后端实现,采用 Go + Gin 技术栈构建,为前端商城和后台管理系统提供完整的 RESTful API 服务。

项目简介

newbee-mall-api-go 是新蜂商城(newbee-mall)项目的 Go 语言版本后端。新蜂商城是一套功能完备的电商系统,最初基于 Spring Boot 2.X 技术栈开发。本项目作为其 Go 语言重构版本,保留了原版的所有数据结构和业务逻辑,采用 Go 语言搭配 Gin 框架重新实现,主要面向 Go 语言方向的服务端开发人员。

项目由开发者 @十三 和 @可乐 共同编写,代码结构清晰、分层合理,适合作为 Go 语言 Web 开发的学习项目,也适合作为中小型电商系统后端的技术选型参考。项目在 GitHub 上获得了 440+ Star,在 Go 电商开源项目中具有一定的知名度。

与 Java 版本相比,Go 版本在部署便捷性、运行资源占用和并发处理能力上都有明显优势。编译后的二进制文件无需运行时环境,一个静态编译的可执行文件即可提供服务,大幅简化了部署流程。

核心特性

newbee-mall-api-go 实现了完整的电商后端功能,以下是其主要特性:

  • 完整的用户系统:注册、登录、Token 认证、用户信息管理
  • 商品管理:商品分类、商品列表、商品搜索、商品详情、商品推荐
  • 购物车功能:添加商品、修改数量、删除商品、购物车列表查询
  • 订单系统:生成订单、订单列表、订单详情、订单状态管理
  • 收货地址管理:地址的增删改查、设置默认地址
  • 后台管理 API:商品管理、订单管理、用户管理、系统配置等运营管理接口
  • 跨域支持:内置 CORS 中间件,解决前后端分离架构下的跨域问题
  • GORM ORM:使用 GORM 进行数据库操作,简化数据访问层代码
  • 配置化管理:通过 YAML 配置文件管理数据库连接、服务端口等参数
  • JWT Token 认证:基于 JWT 实现用户登录状态管理
  • 前后端分离:纯 API 服务,配合独立的 Vue 前端项目使用

技术栈

项目的技术选型简洁高效,充分利用 Go 语言生态中的成熟工具:

组件说明
Go编程语言
Gin高性能 HTTP Web 框架
GORMGo 语言 ORM 库,用于数据库操作
MySQL关系型数据库
JWTJSON Web Token,用于用户认证
YAML配置文件格式
Go ModGo 模块依赖管理

项目整体采用经典的分层架构:

text
newbee-mall-api-go/
├── api/v1/          -- API 控制器层,处理请求和响应
├── config/          -- 配置结构定义
├── core/            -- 核心组件(如数据库连接初始化)
├── global/          -- 全局变量定义
├── initialize/      -- 系统初始化逻辑
├── middleware/      -- 中间件(CORS、JWT 认证等)
├── model/           -- 数据模型定义
├── router/          -- 路由注册
├── service/         -- 业务逻辑层
├── static-files/    -- 静态资源和 SQL 文件
├── utils/           -- 工具函数
├── config.yaml      -- 应用配置文件
├── go.mod           -- Go 模块依赖
└── main.go          -- 程序入口

这种分层结构遵循了 Go 社区的主流实践,model 层定义数据结构,service 层封装业务逻辑,api/v1 层处理 HTTP 请求,router 层负责路由注册,职责清晰,易于维护和扩展。

安装指南

环境要求

  • Go 1.16+(建议使用较新版本)
  • MySQL 5.7+ 或 8.0
  • Git

安装步骤

bash
# 1. 克隆项目
git clone https://github.com/newbee-ltd/newbee-mall-api-go.git
cd newbee-mall-api-go

# 2. 导入数据库
# 将 static-files/ 目录中的 SQL 文件导入到 MySQL 数据库

# 3. 安装依赖
go generate

# 4. 修改配置
# 编辑 config.yaml 文件,配置数据库连接信息

# 5. 编译项目
# macOS / Linux
go build -o server main.go

# Windows
go build -o server.exe main.go

# 6. 运行服务
# macOS / Linux
./server

# Windows
server.exe

快速开始

数据库初始化

项目提供了完整的 SQL 初始化脚本,存放在 static-files/ 目录中。需要先在 MySQL 中创建数据库,然后导入 SQL 文件以创建表结构和初始数据。

配置文件

项目根目录下的 config.yaml 是核心配置文件,主要需要配置以下内容:

  • 数据库连接地址、端口、用户名、密码、数据库名
  • 服务监听端口
  • JWT 密钥配置

前端项目配合

后端 API 服务启动后,需要配合前端项目才能形成完整的商城系统。新蜂商城提供了以下三个前端项目:

  • 新蜂商城 Vue2 版本(newbee-mall-vue-app):前台商城,面向普通消费者
  • 新蜂商城 Vue3 版本(newbee-mall-vue3-app):前台商城的 Vue3 重构版本
  • 后台管理系统 Vue3 版本(vue3-admin):面向商城运营人员的管理后台

测试账号

后台管理系统的默认测试账号:

  • 用户名:admin
  • 密码:123456

前台商城可直接注册新账号使用。

使用示例

API 接口说明

newbee-mall-api-go 提供的 API 涵盖了电商系统的完整业务流程。以下列举主要接口类型:

用户相关接口:

  • 用户注册:POST 请求,提交用户名、密码、确认密码
  • 用户登录:POST 请求,返回 JWT Token
  • 修改密码:PUT 请求,需要 Token 认证

商品相关接口:

  • 商品分类列表:GET 请求,获取所有商品分类
  • 商品列表:GET 请求,支持分页和分类筛选
  • 商品搜索:GET 请求,支持关键词搜索
  • 商品详情:GET 请求,根据商品 ID 获取详情
  • 商品推荐:GET 请求,获取首页推荐商品

购物车相关接口:

  • 添加购物车:POST 请求,需要 Token 认证
  • 修改购物车商品数量:PUT 请求
  • 删除购物车商品:DELETE 请求
  • 获取购物车列表:GET 请求

订单相关接口:

  • 生成订单:POST 请求,从购物车结算生成订单
  • 订单列表:GET 请求,支持分页
  • 订单详情:GET 请求
  • 修改订单状态:PUT 请求(如确认收货)

项目学习价值

对于 Go 语言学习者而言,newbee-mall-api-go 是一个很好的实战项目,涵盖了以下技术知识点:

  1. Gin 框架的使用:路由注册、中间件、参数绑定、响应处理
  2. GORM 的使用:模型定义、CRUD 操作、关联查询、分页处理
  3. JWT 认证实现:Token 生成、验证、中间件拦截
  4. 跨域问题处理:CORS 中间件配置
  5. 项目分层架构:控制器层、服务层、数据访问层的职责划分
  6. 配置管理:YAML 配置文件的读取和使用
  7. 错误处理:统一的错误码和错误响应格式

与 Java 版本的对比

维度Java 版(Spring Boot)Go 版(Gin)
部署方式需要 JVM 运行时编译为单一二进制文件
启动速度较慢(Spring 容器初始化)极快(毫秒级)
内存占用较高(通常数百 MB)较低(通常数十 MB)
代码量较多(Java 程序性代码多)较少(Go 语言更简洁)
开发效率生态丰富,IDE 支持好编译快速,并发模型优秀
适合场景复杂企业级应用高并发、微服务、云原生

项目链接

  • GitHub 仓库https://github.com/newbee-ltd/newbee-mall-api-go
  • 开源协议:AGPL-3.0 License
  • 前台商城 Vue2 版:newbee-mall-vue-app
  • 前台商城 Vue3 版:newbee-mall-vue3-app
  • 后台管理系统:vue3-admin
  • 编程语言:Go(100%)
分享: