基于 Gin + GORM + Wire 的后台管理 API 项目
基于 Gin 模块化开发的 API 框架设计封装了常用功能使用简单致力于进行快速的业务研发。比如支持 cors 跨域、jwt 签名验证 的使用 等等。https://github.com/kuangshp/gin-admin-api项目结构. ├── main.go # 程序入口 ├── wire.go # Wire 依赖注入定义 ├── wire_gen.go # Wire 自动生成 ├── Makefile # 构建脚本 ├── Dockerfile # Docker 构建 ├── docker-compose.yml # 开发环境 Docker Compose ├── docker-compose.prod.yml # 生产环境 Docker Compose ├── application.dev.yml # 开发配置 ├── application.prod.yml # 生产配置 ├── go.mod / go.sum # Go 依赖 │ ├── cmd/ # 可执行命令 │ ├── generator.go # gorm-gen 代码生成工具 │ └── migrate.go # 数据库迁移工具 │ ├── config/ # 配置相关 │ └── config.go │ ├── initialize/ # 初始化模块 │ ├── app.go # App 入口 │ ├── config.go # 配置加载 │ ├── db.go # 数据库连接 │ ├── logger.go # 日志初始化 │ ├── redis.go # Redis 连接 │ ├── router.go # 路由注册 │ ├── validate.go # 验证器 │ └── initSql.go # 数据库初始化默认账号 │ ├── internal/ # 内部包 │ ├── api/account/ # 账号 API │ │ ├── handler.go # 处理器 │ │ ├── dto/ # 数据传输对象 │ │ └── vo/ # 视图对象 │ ├── middleware/ # 中间件 │ ├── query/ # 数据访问层 │ │ ├── dao/ # DAOgorm-gen 生成 │ │ ├── model/ # 实体模型 │ │ │ ├── entity/ # 数据库实体 │ │ │ └── types/ # 自定义类型 │ │ └── repository/ # 仓储层 │ └── router/ # 路由 │ └── pkg/ # 公共包 ├── constants/ # 常量 ├── enum/ # 枚举 ├── utils/ # 工具函数 └── validators/ # 自定义验证器目录说明cmd/可执行命令目录包含数据库迁移、代码生成等工具。config/配置相关模块负责加载 application.yml 配置文件。initialize/应用初始化模块包含app.go- 应用入口负责启动和优雅关闭config.go- 配置加载使用 Viperdb.go- 数据库连接初始化logger.go- Zap 日志初始化redis.go- Redis 连接初始化router.go- Gin 路由注册validate.go- Gin 验证器注册initSql.go- 数据库初始化默认管理员账号internal/内部包不对外暴露。pkg/公共工具包可被外部项目引用。快速开始环境要求Go 1.21MySQL 8.0Redis 6.0启动项目# 1. 配置数据库连接 (application.dev.yml) # 2. 代码生成如有表结构变更 make gen # 3. 数据库迁移 make migrate # 4. 运行项目 make runMakefile 命令命令说明make run运行项目dev 环境make build编译 Linux amd64 二进制make wire重新生成 wire_gen.gomake gen运行 gorm-gen 生成代码make migrate执行数据库迁移make tidy整理 go.modmake test运行测试make docker-up启动 Docker 容器技术栈Web 框架: GinORM: GORM gorm-gen依赖注入: Google Wire配置管理: Viper日志: Zap缓存: Redis验证: go-playground/validator