基于gin+gorm构建的通用项目模板
gin_template
├─Dockerfile
├─go.mod
├─go.sum
├─main.go // 项目入口文件
├─README.md
├─static // 静态资源(图片,文件等)存储文件
├─pkg // 公用包文件夹
| ├─snowflake
| ├─response
| ├─random
| ├─logger
| ├─jwt
| ├─hash
├─logs // gin日志文件存放文件夹
├─internal // 内部代码文件
| ├─router // 路由
| | ├─router.go
| | ├─v1
| | | └user_router.go
| ├─repo // repo层
| | ├─reop.go
| | └user_repo.go
| ├─model // model层
| | ├─base_model.go
| | └user_model.go
| ├─middleware // 中间件
| | ├─auth.go
| | ├─cros.go
| | └logger2file.go
| ├─handler // handler层
| | ├─handle.go
| | ├─v1
| | | ├─user
| | | | ├─get_user_info.go
| | | | ├─login.go
| | | | └user_handler.go
| ├─db // 数据库层
| | ├─database.go
| | ├─redis
| | | └redis_conn.go
| | ├─mysql
| | | ├─auto_migrate.go
| | | ├─init_data.go
| | | └mysql_conn.go
| ├─config // 配置定义
| | └config.go
├─etc // 可编辑配置文件
| └config.yaml
-
- 拉取仓库代码
git clone https://github.com/LanceHE6/gin_template.git
- 拉取仓库代码
-
- 修改
go.mod文件中的module名称为自己的项目名称(可以使用golang的重构)
- 修改
-
- 编辑etc目录下的config.yaml配置文件
-
- 下载依赖包
go mod tidy
- 下载依赖包
-
- 运行
go run main.go
- 运行
可编辑的配置文件
项目内部代码
配置定义
数据库相关代码,包括数据库连接、初始化数据、自动迁移数据表等
database.go 用于管理数据连接
handler层代码,业务的实现逻辑代码
handle.go 用于注册handler
中间件代码 如跨域,鉴权,日志记录等
数据库模型定义
数据访问层代码,数据在数据库层面上的增删改查,包括数据访问接口和数据访问实现
repo.go 用于注册所有数据访问接口
路由定义
router.go 用于注册路由
日志文件存放路径 日志记录中间件将记录的日志以天为单位存放
静态文件存放路径 如图片,文件,音频等,能通过gin访问的静态资源
公用包存放路径 如雪花算法,jwt函数,随机数生成等工具类,公共函数