能跑通就行,只要go run main.go后浏览器访问http://localhost:8080/ping返回{"msg":"pong"}即环境搭好;必须先go mod init myapp再go get github.com/gin-gonic/gin,用gin.Default()启动并显式调用r.Run(":8080")。

能跑通就行,别被“默认中间件”“调试模式警告”吓住——只要 go run main.go 后浏览器能打开 http://localhost:8080/ping 返回 JSON,环境就算搭好了。
go mod init 和 go get 顺序不能错
先有模块,再装依赖。没 go.mod 就直接 go get,Go 会报 go: no required module provides package 或默默把包装进 GOROOT,后续 import 失败。
- 在空目录下执行
go mod init myapp(模块名建议用小写字母+短横线,避免大写或点号) - 再执行
go get github.com/gin-gonic/gin(不用-u,除非你明确要升级已有依赖) - 运行
go mod tidy补全间接依赖,尤其当你删了 import 或换机器拉代码后必须跑一次
gin.Default() 和 gin.New() 别混用场景
gin.Default() 自带 Logger 和 Recovery 中间件,开发阶段方便看日志、不因 panic 崩溃;gin.New() 是裸引擎,适合测试、嵌入子服务或你打算自己加中间件链。
- 刚起步一律用
gin.Default(),省心 - 如果看到控制台刷屏
[GIN-debug] [WARNING] Running in "debug" mode,这是正常提示,不是错误 - 上线前加
gin.SetMode(gin.ReleaseMode)关掉调试日志,否则日志量暴增
router.Run() 端口和绑定地址要显式写清
不传参数时 r.Run() 默认监听 0.0.0.0:8080,但容易踩两个坑:一是 macOS 上可能被占用,二是 Docker 或云环境里需要绑定 0.0.0.0 而非 127.0.0.1。
立即学习“go语言免费学习笔记(深入)”;
- 本地开发可写
r.Run(":8080")或r.Run("127.0.0.1:8080") - 部署到容器或服务器时,务必用
r.Run("0.0.0.0:8080"),否则外部请求连不上 - 端口被占时,错误是
listen tcp :8080: bind: address already in use,换端口重试即可,比如r.Run(":9090")
启动后看不到响应?先查三件事
常见卡点不在 Gin 本身,而在 Go 工具链或网络配置。
- 确认
main.go里写了r.GET("/ping", ...),且r.Run()在最后——函数没注册或Run()被提前 return 了,服务根本没起来 - 用
curl -v http://localhost:8080/ping测试,比浏览器更准;返回Connection refused说明进程没跑,404说明路由没注册对 - Windows PowerShell 或某些终端里,
go run .可能漏编译其他.go文件,首次建议用go run main.go明确入口
真正麻烦的从来不是写几行路由,而是依赖版本冲突、代理没配、端口绑错、或者误把 gin.New() 当成 Default() 用——这些地方一卡就是半小时。


















