# go-gin-init **Repository Path**: AlixJC/go-gin-init ## Basic Information - **Project Name**: go-gin-init - **Description**: gin框架单体项目初始化 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-09-01 - **Last Updated**: 2023-09-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # go-gin-init #### 介绍 gin框架单体项目初始化 #### 软件架构 go-web 单体项目架构 #### 提前声明 本项目旨在搭建一个个人万能快速go-gin模板,集成学习中学习到的开发组件,后续任然会进行添加各种组件 项目目前基本已搭建雏形,当许多地方仍然有瑕疵(最近忙于其他项目,该项目只是闲暇时开发,添加组件),项目中很多地方有详细注释说明。 举例: - 对于启动项目路径在根目录而不是在cmd目录中,是由于兼顾 viper 和 air(大家可以去探索) - swagger 这里在根目录进行生成是踩了很多坑的,方正当时在github的issues中找了很久 https://github.com/swaggo/gin-swagger/issues/99 ... 后续还会继续补充,完善..... #### 使用说明 1. 编辑配置文件,建库建表(文件在根目录sql中) 2. go mod tidy 下载依赖 3. 启动(两种方式) 1. 方式一: - cd 到go-gin-init目录 - 直接运行命令 go run ./app/cmd/main.go 2. 方式二: - 下载 air 热重启插件(下载及使用自行csdn或百度) - cd 到go-gin-init目录 - 执行 air 命令 4. 如果看到控制输出 mysql链接成功、服务启动,监听端口:9000 则代表启动成功(注意看终端日志) 5. 生成swagger文档 - cd 到go-gin-init目录 执行 `swag init -g app/cmd/main.go` - 根目录下生成docs则代表在线api生成成功(仍需注意终端日志) - 打开在线链接 `http://127.0.0.1:9000/swagger/index.html` #### 项目所需依赖 1. viper 配置文件管理包 > go get github.com/spf13/viper 2. sqlx 数据库操作工具库 > go get github.com/jmoiron/sqlx 3. air 热重启 > go install github.com/cosmtrek/air 4. gin框架 > go get -u github.com/gin-gonic/gin 5. swagger api文档 > 安装swag > > go get -u github.com/swaggo/swag/cmd/swag > > 引入依赖 > > go get -u github.com/swaggo/gin-swagger > > go get -u github.com/swaggo/files > > 相关链接 > https://blog.csdn.net/qq_41264401/article/details/130604881?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169202358816800227444870%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=169202358816800227444870&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-130604881-null-null.142^v92^koosearch_v1&utm_term=gin%20swagger&spm=1018.2226.3001.4187 > 6. zap日志进行gin中间件管理 logrus日志进行trace日志跟踪 > go get -u go.uber.org/zap > go get github.com/sirupsen/logrus 7. 日志切割 > go get github.com/natefinch/lumberjack 8. 对象复制包 > go get github.com/jinzhu/copier 9. 缓存redis > go get github.com/go-redis/redis/v8 10. es > github.com/olivere/elastic/v7 v7.0.32 11. 定时任务 > "github.com/robfig/cron/v3" #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)