Skip to content

Gin 实战 1:环境准备与项目初始化

本系列从空目录开始搭建一个后台管理系统后端。第一步先准备环境、初始化 Go Module,并搭出后续章节会持续扩展的工程目录。

1. 准备环境

环境建议版本用途
Go1.25+编译和运行后端服务
MySQL5.7+ / 8.x保存用户、角色、菜单等业务数据
Redis7.x后续扩展验证码、Token 状态和限流数据
Git2.x管理代码版本
GoLand最新稳定版推荐的 Go 开发 IDE

确认 Go 可用:

bash
go version

国内网络建议配置 Go 代理:

bash
go env -w GOPROXY=https://goproxy.cn,direct

GoLand 可以从 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。

基于 MIT 许可发布 · 如需部署协助或二开定制,请查看 支持与合作