完整项目地址: [go-shop-b2c](https://github.com/CleverBamboo/go-shop-b2c)
系列文章:
* [手摸手,带你用 Beego撸商城 系列一(基础篇)](https://cleverbamboo.github.io/2021/03/30/GO/手摸手,带你用Beego撸商城系列一(基础篇)/)
* [手摸手,带你用 Beego撸商城 系列二(登录篇)](https://cleverbamboo.github.io/2021/04/01/GO/手摸手,带你用Beego撸商城系列二(登录篇)/)
* [手摸手,带你用 Beego撸商城 系列三(系统配置篇)](https://cleverbamboo.github.io/2021/04/09/GO/手摸手,带你用Beego撸商城系列三(系统配置篇)/)
## 前言
这里不会讲解太多的基础知识,主要介绍关于从零开始使用 **Beego** 框架撸一个商城思路
<!--more-->
## 目录结构
```
├── common // 公共函数
├── conf // 配置相关
├── controllers // API请求
│ ├── admin // 后台管理 API
│ ├── web // 移动web商城 API
├── helpers // 工具函数
├── model_views // 前端展示 Struct
├── models // Model层
├── routers // RESTful 路由
├── setting // 系统配置
├── sysinit // 应用启动前初始化
├── .gitignore // git 忽略项
├── go.mod // Go Module依赖
├── go-shop-b2c // SQL文件
├── go-shop-b2c.xml // 系统配置XML
├── main.go // 入口 main.go
├── xxx.p12 // API证书(微信支付)
```
下面简单介绍目录代码
### controllers
简单截取一下 controller/admin 的 controller
![](https://z3.ax1x.com/2021/03/30/cigZcT.png)
这里着重介绍一下 **json_controller.go、base_controller.go**
* **json_controller.go** 继承 **beego.Controller**,增加返回前端 **JOSN** 数据处理函数、服务报错误处理等公共函数等
* **base_controller.go** 继承 **json_controller.go**,重载 **Prepare** 函数,并做登录有效信息校验等
关键代码示例:
![](https://z3.ax1x.com/2021/03/30/cifnR1.png)
![](https://z3.ax1x.com/2021/03/30/cifmGR.png)
### models
使用 Beego 提供的 [Bee](https://beego.me/docs/install/bee.md) 工具 api 命令生成的 Model层,**主要包含增、删、改、查数据库的函数**
截图某个片段示例:
![](https://z3.ax1x.com/2021/03/30/ci4k4J.png)
### routers
beego 的 [RESTful Controller](https://beego.me/docs/mvc/controller/router.md) 路由
关键代码示例:
![](https://z3.ax1x.com/2021/03/30/ciTeiD.png)
![](https://z3.ax1x.com/2021/03/30/ciTlLt.png)
### setting
商城后台管理系统的系统设置模快,存储于 xml 文件, setting/setting.go 是封装 对 go-shop-b2c.xml的操作
对应商城管理系统的系统设置模快,前端展示:
![](https://z3.ax1x.com/2021/03/30/ci7t76.png)
### sysint
beego 执行 RUN 之前,各种初始化操作,比如 日志打印、数据库连接、CORS配置等
关键代码示例:
![](https://z3.ax1x.com/2021/03/30/ci76Bt.png)
有疑问加站长微信联系(非本文作者)