Gin 实战 1:环境准备与项目初始化
本系列从空目录开始搭建一个后台管理系统后端。第一步先准备环境、初始化 Go Module,并搭出后续章节会持续扩展的工程目录。
1. 准备环境
| 环境 | 建议版本 | 用途 |
|---|---|---|
| Go | 1.25+ | 编译和运行后端服务 |
| MySQL | 5.7+ / 8.x | 保存用户、角色、菜单等业务数据 |
| Redis | 7.x | 后续扩展验证码、Token 状态和限流数据 |
| Git | 2.x | 管理代码版本 |
| GoLand | 最新稳定版 | 推荐的 Go 开发 IDE |
确认 Go 可用:
bash
go version国内网络建议配置 Go 代理:
bash
go env -w GOPROXY=https://goproxy.cn,directGoLand 可以从 JetBrains 官方下载页安装:https://www.jetbrains.com/go/download/。如果你已经习惯 VS Code,也可以使用 VS Code + Go 插件;本系列示例命令不依赖具体 IDE。
2. 初始化项目
新建项目目录:
bash
mkdir youlai-gin
cd youlai-gin
go mod init youlai-gin先创建基础目录:
text
youlai-gin/
configs/ # 配置文件
internal/ # 项目内部代码
common/ # 公共能力:配置、日志、数据库、响应、认证
middleware/ # Gin 中间件
router/ # 路由注册
system/ # 后台业务模块
pkg/ # 通用类型、常量、错误码
main.go # 应用入口目录思路很简单:
main.go只负责启动流程。configs放端口、数据库、JWT 等配置。internal/common放多个模块都会用到的能力。internal/system放用户、角色、菜单等业务模块。internal/router统一注册 HTTP 路由。
3. 安装 Gin
bash
go get github.com/gin-gonic/gin先写一个最小入口:
go
package main
import "github.com/gin-gonic/gin"
func main() {
// gin.New() 创建一个不带默认中间件的 Gin 实例。
// 后续章节会手动接入日志、异常处理、Recovery 等中间件。
r := gin.New()
// 注册一个最小接口,用来验证 HTTP 服务是否能正常响应。
r.GET("/ping", func(c *gin.Context) {
// gin.H 是 map[string]any 的快捷写法,适合返回简单 JSON。
c.JSON(200, gin.H{"msg": "pong"})
})
// 暂时把端口写死在这里。
// 下一章会用 Viper 把端口迁移到 configs/dev.yaml。
r.Run(":8000")
}运行:
bash
go run main.go访问:
bash
curl http://localhost:8000/ping返回 {"msg":"pong"},说明项目骨架已经跑通。下一章把端口和其他配置从代码里抽到 YAML。
