Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/flowers-bloom/gin_web_scaffold
gin 初学者,本着边学习边实践的思想,致力于搭建一个简洁易用的基于 gin 的 web 脚手架。
https://github.com/flowers-bloom/gin_web_scaffold
gin go gorm viper
Last synced: about 2 months ago
JSON representation
gin 初学者,本着边学习边实践的思想,致力于搭建一个简洁易用的基于 gin 的 web 脚手架。
- Host: GitHub
- URL: https://github.com/flowers-bloom/gin_web_scaffold
- Owner: flowers-bloom
- License: mit
- Created: 2021-01-27T08:54:18.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-02-21T12:53:04.000Z (almost 4 years ago)
- Last Synced: 2024-05-27T21:28:10.841Z (8 months ago)
- Topics: gin, go, gorm, viper
- Language: Go
- Homepage:
- Size: 22.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# gin_web_scaffold
gin 初学者,本着边学习边实践的思想,致力于搭建一个简洁易用的基于 gin 的 web 脚手架。
## 依赖
```go
go mod init
go get github.com/gin-gonic/gingo get github.com/spf13/viper
go get -u gorm.io/gorm
go get -u gorm.io/driver/mysqlgo get github.com/go-redis/redis/v8
```## 目录结构
- api 接口(控制)层
- common 定义一些公共实现
- config 配置层
- constant 定义一些全局常量
- dao 数据访问层
- dto 数据传输层
- middleware 中间件层
- model 数据实体层
- router 定义路由信息
- service 业务(服务)层
- util 定义一些工具## 功能
1. gin 实现 web 路由、中间件等功能
2. gorm 实现数据库访问
3. viper 实现加载配置文件
4. 通过 fmt 自定义实现日志框架,可同时写入控制台和文件,且支持文件滚动收集
5. go-redis 封装对 redis 的操作
6. 内部异常统一采用 panic 抛出,在上层函数中采用 defer、recover 捕获处理,避免程序终止
7. 自定义身份认证中间件## 日志
| 完成时间 | 功能点 |
| :---------: | :-------------------: |
| 2021.1.22 | gin 实现基础 pong 路由测试 |
| 2021.1.25 | 搭建自定义 web 目录结构,并实现 gin 路由 |
| 2021.1.26 | 依赖 gorm 实现数据库访问;依赖 viper 实现加载配置文件 |
| 2021.1.27 | 通过 fmt 自定义实现日志框架,可同时写入控制台和文件,且支持文件滚动收集 |
| 2021.1.28 | go-redis 封装字符串和一些通用操作,并统一异常处理,新增学生、学科、成绩三表,尝试原生 sql 查询 |
| 2021.1.29 | 结构体参数验证测试 |
| 2021.2.21 | 自定义身份认证中间件,token 自动延时 |