## 核心插件
| 名称 | 功能 | 说明 | 文档 |
| -------- | -------- | -------- | -------- |
| Redis | go get -u github.com/go-redis/redis | Redis缓存 | Go标准库 |
| MySQL | go get -u github.com/go-sql-driver/mysql | 数据库驱动 | Go标准库 |
| Gin | go get -u github.com/gin-gonic/gin | 主框架 | https://www.kancloud.cn/shuangdeyu/gin_book |
| Gorm | go get -u github.com/jinzhu/gorm | 数据库ORM | http://gorm.book.jasperxu.com/ |
| godotenv | go get -u github.com/joho/godotenv | 配置 | 已集成自动调用 |
| JWT | go get -u github.com/dgrijalva/jwt-go | JWT插件 | 已集成到工具 |
## 状态码
| 状态码 | 说明 | 操作 |
| -------- | -------- | -------- |
| 200 | 成功 | 请求正常 |
| 400 | 错误 | 显示错误信息给用户 |
| 401 | 未登录 | 跳转登录 |
| 500 | 服务器错误 | 显示错误信息给用户,将参数和地址发送给后台处理BUG |
## Go-MySQL类型对应表
![img.png](public/doc/img.png)
## 目录说明
### 公共包 common
放置一些公共包
### 控制层 controller
用于存放业务层逻辑,所谓业务层是指具体某一业务实现的方式,对外提供接口,对内调用数据库操作。
+ 文件名称首字母一律大写,后面必须添加 `Controller` 结尾,用做标识这是控制器文件,如UserController
+ 控制器文件名必须和业务强相关,比如用户相关的控制器,我们需要设计文件名为UserController.go
+ 所有业务逻辑名称首字母必须大写,且只能为字母。
+ 所有业务逻辑名称首字母必须大写,且只能为字母。
### 模型层 model
数据库相关操作
![](https://img.kancloud.cn/f0/0f/f00fac5219331935ab6360ba679d1482_544x758.png)
### 工具类 util
+ JWT工具类
+ 常用函数
+ 日志初始化
~~~