10篇带你手摸手封装gin框架(1)-开篇与目录设计 前言

前言

这是我参与更文挑战的第1天,
大家好,我是作曲家种太阳

gin和koa一样,都是小而美的框架,自由端很高,缺点是不能拿来即用,需要做一些二次封装,才能运用到真实的业务场景去.

这个系列文章我会认真的带着大家一步一步的封装好高质量的gin框架,并且每个文章最后都测试环节,检验效果.

类似的gin,koa,falsk的框架有很多,其实是都是一通百通,架构设计和规范还有后端领域相关生态都是类似的,相信你认真学完本专栏的文章,会有一举反三的能力.

遇到关于本系列文章的各种问题,都可以留言,我看到后会及时回答讨论~

  • 我相信最好的学习方式就是输出~
  • 下是整个专栏的文章链接:
  • 文章已经写好,从6.6号开始保证每日一更~

10篇带你手摸手封装gin框架(1)-开篇与架构设计

10篇带你手摸手封装gin框架(2)-Viper配置管理

10篇带你手摸手封装gin框架(3)-Zap日志管理

10篇带你手摸手封装gin框架(4)-Validator字段校验

10篇带你手摸手封装gin框架(5)-responese统一封装

10篇带你手摸手封装gin框架(6)-gorm使用和用户列表接口开发

10篇带你手摸手封装gin框架(7)- redis接入与图形验证码

10篇带你手摸手封装gin框架(8)- jwt验证与登录接口完善

10篇带你手摸手封装gin框架(9)-常用中间件开发

10篇带你手摸手封装gin框架(10)- Minio文件管理与上传头像接口开发

不定期随缘更新:

10篇带你手摸手封装gin框架- Docker部署gin项目

10篇带你手摸手封装gin框架- websocket接入

说明的是,本系列侧重于对gin框架二次封装,接口开发是为了顺带串通整个流程,所以接口实现并一定不规范

项目源码地址:github.com/pyh996/gin_…

建议参考文章和源码一起食用更佳

你所需要具备的能力:

  1. debug能力
  2. 会go语言基础,基本软件安装
  3. 了解mysql与sql语句

1.技术选型

非标准库:

所用技术 概要
gin go中最流行的web框架
zap 日志管理器
viper 配置管理器
gorm go中最流行的orm框架
mysql 数据库
jwt 身份认证
minio 静态资源服务器
redis 数据库
validator 字段校验器
color 终端彩色显示

2.目录结构设计

image.png
从上到下目录结构为:

文件 概要
config 配置文件对应的结构体定义
controller 业务层
dao 操作数据库,给业务controller提供数据
forms 字段验证的struct
global 定义全局变量
initialize 服务初始化
logs 日志存储
middlewares 中间件
models 数据库字段定义
Response 统一封装response
static 资源文件夹
router 路由
setting-dev.yaml 配置文件
main.go 服务启动文件

到这里相信你对框架有了基本的了解,每个文件都在自己的事情,一个清晰的目录更有利于程序的开发

请手动新建下这几个文件,接下来我们开始实操环节

3.编写第一个gin的程序

(1).安装gin

1
shell复制代码 go get -u github.com/gin-gonic/gin

(2).在main.go中编写

1
2
3
4
5
6
7
8
9
10
11
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的最简单的程序,打开

http://127.0.0.1:8080/ping

返回结果是
image.png

返回结果一致说明,您做对了,接着学习下一篇吧~

如果这系列的文章对你有有用,请点赞和留言吧~

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%