推荐一个最新的Golang学习项目-Gin框架封装

564 阅读2分钟

分享一篇最新的Golang学习项目

1. 技术栈:

  • Gin:Gin 是一个用 Go (Golang) 编写的轻量级 HTTP Web 框架,使用责任链模式对中间件加载进行,并且内部封装Sync.Pool、RouterGroup等多种强大的内部组件,是一个较为流行的框架,但开放度太高,容易导致一个人一个开发风格。 go get github.com/gin-gonic/gin
  • Gorm:是使用较多的一个Object Relational Mapping:对象关系映射。go get gorm.io/gorm
  • go-redis:Golang中操作Redis的库 go get github.com/go-redis/redis
  • go-jwt: Golang中使用Jwt认证的库 go get github.com/golang-jwt/jwt
  • GoCron: Golang中使用的定时任务库:go get github.com/go-co-op/gocron

2. 架构设计

项目设计架构思想为经典的MVC模式,巧妙的对Gin和Gorm进行封装联动使用,极大的简化和规范化开发流程其中的设计理念需要大家自己去探索,相信你一定有所收获。

client/ #WEB客户端
common/ #存放通用内容的包
 |---e #存放自定义错误、错误code、code对应消息。
  |---code.go
  |---error.go
  |---msg.go
 |---enum #存放自定义枚举、常量、变量
 |---utils#工具包、例如jwt、limit限流、Email邮件、泛型工具函数
 |---result.go#自定义通用数据返回格式
config/ #项目配置文件
 |---application-dev.yaml
 |---application-release.yaml
 |---config.go #配置文件解析类
global/ #全局包,存放例如:GormDB、RedisClient、AllConfig……
 |---global.go 
initialize/ #初始化包内部主要是需要初始化构建的组件
 |---enter.go
 |---gorm.go
 |---redis.go
 |---router.go
internal/ #内部包,这里面主要实现Controller、Service、Repository层的操作。
 |---api/
 |---model/
 |---repository/
 |---router/
 |service/
logger/ #日志包,用来管理日志
 |---log.go 
middle/ #中间件包,主要该项目需要使用的中间件、例如身份、权限、限流、等拦截器功能。
 |---jwt_middle.go
script/ #脚本包,主要做一些初始化脚本工作,例如MySQL数据初始化脚本、DevOps发布脚本等。

go.mod #goalng的项目依赖文件,类似于java的maven
main.go #入口函数,项目启动从main函数开始。
 

3.项目链接

Meng-Xin/take-out: 苍穹外卖 Golang,一个规范化的Gin项目开发实例。 (github.com)