关于gin框架的脚手架

一、go_builder脚手架介绍

1、项目介绍

本脚手架是基于gin框架实现

  • 内置zap日志库
  • viper读取配置文件
  • jwt & cors & track的中间件
  • 缓存使用redis,orm框架使用gorm
  • 七牛云oss文件上传
  • 使用依赖倒置原则抽象dao层
  • dockerfile制作镜像,docker-compose编排项目
  • 使用shell脚本自动生成dao、cache、service、svc模板代码

准备实现:

  • jaeger的链路追踪收集到jaeger-ui
  • elk日志收集系统

2、项目目的

在使用Gin框架的时候,因为比较轻量级,使用gin.new(),并且run起来就运行起来了,但是我们项目中往往需要配置许多依赖库,我这里就使用cld的架构搭建里一套关于gin框架的脚手架。

3、项目介绍

脚手架架构分为CLD分层,controller为api层、service为逻辑层,dao层为数据库层,上手简单,目录结构清晰,一些常用小工具后续会慢慢加上~~~

二、go_builder 脚手架目录结构

├── conf
├── api
├── cmd
├── deploy
├── logger
├── middlewares
├── repository
    ├── cache
    ├── db
      ├── dao
      ├── model
    ├── es
    ├── rabbitmq
    ├── track
├── router
├── service
	  ├── svc
├── setting
└── utils
    ├── app
    └── snowflake
    ├── jwt
    ├── upload
文件夹说明描述
conf配置包放置配置文件,例:config.yaml
apiapi层程序入口层
cmd服务程序包包含程序运行main函数以及运行脚本
deploy外来配置工具包配置nginx.conf、sql建表、script脚本、组件yaml配置等
logger日志包初始化日志文件
middlewares中间件自定义关于gin的中间件,例如jwt、cors等
repository组件仓库包含缓存、db、es、mq等
--cache缓存组件使用redis缓存层
--dbsql组件存放mysql的model & dao
router路由层用于放入全局路由
service逻辑层用于放入业务逻辑
--svc逻辑上下文层用于初始化service层的context,拿到dao层接口数据
setting配置项yaml配置映射为结构体
utils工具包自定义工具使用
--app全局响应返回json数据的封装,success & failed
--snowflake雪花算法工具包生成int64的id

三、关于gencode自动生成代码

gencode脚本在deploy/gencode/gencode.sh中,首先进入gencode文件目录,如果我要生成关于user的代码,命令:./gencode.sh user,会生成对应的svc、service、dao、cache模板代码。后续考虑单独抽出来,放入gopath/bin目录下

四、docker的使用

1、使用dockerfile制作镜像

docker build -t go_builder . 构建镜像

2、使用docker-compose一键编排项目

docekr-compose up 一键启动项目

docker-compose stop 一键关闭项目

欢迎大家提issue!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值