当前位置: 首页 > news >正文

Gin 框架进阶系列(一):安装与第一个路由

Gin 框架进阶系列(一):安装与第一个路由


前置条件

Go 1.18+,已配置好 GOPATHGOPROXY(国内建议 https://goproxy.cn,direct)。


初始化项目

mkdir gin-blog && cd gin-blog
go mod init gin-blog
go get -u github.com/gin-gonic/gin

最小可运行示例

package mainimport ("net/http""github.com/gin-gonic/gin"
)func main() {r := gin.Default() // 内置 Logger + Recovery 中间件r.GET("/ping", func(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"message": "pong",})})r.Run(":8080") // 默认 0.0.0.0:8080
}
go run main.go
curl http://localhost:8080/ping
# {"message":"pong"}

gin.Default()gin.New() 的区别:前者自带 Logger 和 Recovery 两个中间件,后者是裸引擎。生产环境建议用 gin.New() 自行控制中间件。


gin.H 是什么

// gin 源码
type H map[string]any

就是 map[string]interface{} 的别名,方便写 JSON 响应。结构化场景建议用 struct 替代:

type Response struct {Code int    `json:"code"`Msg  string `json:"msg"`Data any    `json:"data"`
}r.GET("/ping", func(c *gin.Context) {c.JSON(http.StatusOK, Response{Code: 0,Msg:  "success",Data: nil,})
})

运行模式

Gin 有三种模式:debugreleasetest

// 方式一:代码设置
gin.SetMode(gin.ReleaseMode)// 方式二:环境变量
// export GIN_MODE=release

debug 模式会打印路由表和调试日志,部署时务必切到 release,否则性能白白浪费在日志 I/O 上。


小结

这一篇只做了一件事:用最少代码跑起来一个 Gin 服务,理解 gin.Default()gin.H、运行模式三个核心概念。

下一篇进入路由系统详解:分组、路径参数、查询参数、重定向与 404 处理。

http://www.jsqmd.com/news/592987/

相关文章:

  • SAP PP顾问必看:手把手教你用增强PPCO0001实现CO02工单变更记录(附完整ABAP代码)
  • SA8775学习笔记(一)一颗 SA8775P,能不能撑起舱驾一体?从架构到实战彻底讲透(多屏+多摄+AI+安全全解析)
  • HuggingFace Transformers库中Tokenizer与Model的高效实践指南
  • ZenTimings终极指南:解锁AMD Ryzen内存性能的完整解决方案
  • Legacy-iOS-Kit全流程指南:让iPad mini 2重获新生的系统降级实践
  • 终极GTA V安全防护与游戏体验增强工具完整指南
  • UVM调试利器:print_topology()与factory.print()的实战应用
  • 终极虚拟显示器方案:免费实现Windows多屏扩展与游戏串流
  • 2025 年12月9日-KB5072033(操作系统内部版本 26200.7462和26100.7462)
  • 重塑知识架构:深度探索Trilium Notes的三维思维革命
  • 2026年EPM选型避坑指南:冠融17年实施经验总结的6个死亡陷阱 - 冠融盈科
  • 从电桥到差分放大:三线制PT100测温电路的设计实践与精度考量
  • 2026最权威的十大AI科研工具实测分析
  • 从编译到跑通第一个BA:手把手在VS2022里配置Ceres做视觉SLAM
  • 模型性能评测
  • 手把手教你配置华为存储密码永不过期,告别90天改密烦恼
  • LPDDR4协议规范之 (六)刷新:深入解析刷新命令与时序优化策略
  • 2025 年12月 1日KB5070311(操作系统内部版本26200.7309和26100.7309)预览 版
  • 快马平台五分钟构建openclaw命令演示原型,零配置验证核心功能
  • 2026大数据寒冬实锤:Spark/Flink批量优化裁员,AI For Data 流水线上线,3人干原来10人活 【Java PyTorch深度学习】PyTorch On Java避险涨薪全攻略
  • ENSP毕业设计实战:基于MSTP+VRRP的园区网高可用与负载均衡配置详解
  • Axure RP界面语言模块本地化适配指南:从环境配置到效能优化
  • 你的Linux系统启动慢?可能是UEFI的‘锅’!保姆级优化指南:从固件设置到GRUB配置
  • 计算机内,数据的表示(真值与机器数)
  • Ghidra逆向工程平台:探索二进制世界的开源利器
  • 无损图像转PDF新方案:img2pdf工具全攻略
  • 手把手教你用Gemini 2.5 Computer Use模型打造个人AI助理:自动填表、比价、抢票全攻略
  • 物联网体系结构分层解析:从感知到应用的智能连接
  • Qwen3-14B辅助PyCharm高效编程:实时代码审查与重构建议
  • 7个维度掌控NSudo:系统管理员的终极权限管理指南