10篇带你手摸手封装gin框架(1)-开篇与目录设计
前言
这是我参与更文挑战的第1天, 大家好,我是作曲家种太阳 gin和koa一样,都是小而美的框架,自由端很高,缺点是不能拿来即用,需要做一些二次封装,才能运用到真实的业务场景去.
这个系列文章我会认真的带着大家一步一步的封装好高质量的gin框架,并且每个文章最后都测试环节,检验效果.
类似的gin,koa,falsk的框架有很多,其实是都是一通百通,架构设计和规范还有后端领域相关生态都是类似的,相信你认真学完本专栏的文章,会有一举反三的能力.
遇到关于本系列文章的各种问题,都可以留言,我看到后会及时回答讨论~
你所需要具备的能力:
- debug能力
- 会go语言基础,基本软件安装
- 了解mysql与sql语句
1.技术选型
非标准库:
| 所用技术 | 概要 |
|---|---|
| gin | go中最流行的web框架 |
| zap | 日志管理器 |
| viper | 配置管理器 |
| gorm | go中最流行的orm框架 |
| mysql | 数据库 |
| jwt | 身份认证 |
| minio | 静态资源服务器 |
| redis | 数据库 |
| validator | 字段校验器 |
| color | 终端彩色显示 |
2.目录结构设计
从上到下目录结构为:
| 文件 | 概要 |
|---|---|
| config | 配置文件对应的结构体定义 |
| controller | 业务层 |
| dao | 操作数据库,给业务controller提供数据 |
| forms | 字段验证的struct |
| global | 定义全局变量 |
| initialize | 服务初始化 |
| logs | 日志存储 |
| middlewares | 中间件 |
| models | 数据库字段定义 |
| Response | 统一封装response |
| static | 资源文件夹 |
| router | 路由 |
| setting-dev.yaml | 配置文件 |
| main.go | 服务启动文件 |
到这里相信你对框架有了基本的了解,每个文件都在自己的事情,一个清晰的目录更有利于程序的开发
请手动新建下这几个文件,接下来我们开始实操环节
3.编写第一个gin的程序
(1).安装gin
go get -u github.com/gin-gonic/gin
(2).在main.go中编写
package main
import "github.com/gin-gonic/gin"
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Run() // 监听并在 0.0.0.0:8080 上启动服务
}
最后--测试环节
我们刚才写了一个gin的最简单的程序,打开
返回结果是

返回结果一致说明,您做对了,接着学习下一篇吧~
如果这系列的文章对你有有用,请点赞和留言吧~
转载自:https://juejin.cn/post/6970678168860491784