字数 971,阅读大约需 5 分钟
5分钟掌握使用Gin开发web业务代码的仓库核心配置
分享最近自用的基于 Go 语言和 Gin 框架构建的高性能 RESTful API 服务。
项目简介
本项目采用 MVC 分层架构,结合依赖注入和中间件模式,提供稳定、可扩展的后端服务解决方案。
环境要求
• Go: 1.19 或更高版本
• 数据库: PostgreSQL 12+
• 容器: Docker & Docker Compose (可选)
快速开始
1. 环境配置
设置 Go 环境变量
# 启用 Go Modules
go env -w GO111MODULE=on
# 配置国内代理
go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct
# 检查环境变量
go env GOPATH
go env GOBIN
# 配置 PATH (添加到 ~/.zshrc)
echo 'export GOPATH=$HOME/go' >> ~/.zshrc
echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.zshrc
source ~/.zshrc
安装开发工具
# 安装热重载工具 air
go install github.com/air-verse/air@latest
echo "alias air='~/go/bin/air'" >> ~/.zshrc
source ~/.zshrc
# 安装数据库迁移工具 goose
go install github.com/pressly/goose/v3/cmd/goose@latest
# 验证安装
air -v
goose -version
2. 项目初始化
# 克隆项目
git clone <repository-url>
cd gin-service
# 安装依赖
go mod tidy
# 复制环境变量模板
cp .env.example .env
# 启动数据库 (使用 Docker)
docker-compose up -d postgres
# 运行数据库迁移
goose -dir migrations/postgres postgres "user=postgres dbname=gin_service sslmode=disable" up
或者
直接启动服务,项目兼容在服务器启动的以后进行数据库迁移功能
3. 启动服务
开发模式 (推荐)
# 使用 air 热重载
air
# 或直接运行
go run main.go
生产模式
# 构建应用
go build -o gin-service
# 运行应用
./gin-service
依赖管理
go.mod 与 go.sum
常用命令
# 整理依赖
go mod tidy
# 下载依赖
go mod download
# 验证依赖
go mod verify
# 查看依赖树
go mod graph
# 更新依赖
go get -u github.com/gin-gonic/gin
API 文档
Swagger 文档
项目使用 Swaggo[1] 自动生成 API 文档。https://github.com/swaggo/swag/blob/master/README_zh-CN.md
# 安装 swag
go install github.com/swaggo/swag/cmd/swag@latest
# 生成文档
swag init
# 访问文档
# 开发环境: http://localhost:8080/swagger/index.html
文档规范
• 所有 API 接口必须添加 Swagger 注释
• 使用 RESTful 设计规范
• 统一返回格式:
{"code": 200, "message": "success", "data": {...}}
开发规范
代码风格
• 遵循 Effective Go[2]
• 使用
gofmt
格式化代码• 函数和变量命名使用驼峰式
• 包名使用小写字母
提交规范
# 格式: <type>(<scope>): <description>
# 示例:
feat(auth): 添加用户登录功能
fix(user): 修复用户注册验证问题
docs(api): 更新API文档说明
部署说明
Docker 部署
# 构建镜像
docker build -t gin-service .
# 运行容器
docker run -p 8080:8080 --env-file .env gin-service
使用 Docker Compose
# 启动所有服务
docker-compose up -d
# 查看日志
docker-compose logs -f gin-service
# 停止服务
docker-compose down
监控与日志
• 日志: 使用 logrus 进行结构化日志记录
• 监控: 集成 Prometheus 指标收集
• 健康检查:
/health
接口用于服务状态监控
常见问题
Q: 如何解决依赖下载慢的问题?
A: 配置国内代理 go env -w GOPROXY=https://goproxy.cn
Q: 如何重置数据库?
A: goose -dir migrations/postgres postgres "user=postgres dbname=gin_service sslmode=disable" reset
Q: 如何查看API文档?
A: 启动服务后访问 http://localhost:8080/swagger/index.html
Q:端口设置?
A: 默认端口为8080,可以通过环境变量 PORT
来修改Run的端口。
技术支持
如有问题,请提交 Issue[3] 或联系开发团队。
引用链接
[1]
Swaggo: https://github.com/swaggo/swag[2]
Effective Go: https://golang.org/doc/effective_go.html[3]
Issue: https://*/gin-service/issues
评论区