最简单方式是直接调用 r.GET(),传入路径字符串和处理函数;路径支持静态如"/health"或动态如"/user/:id",处理函数接收 *gin.Context 并用 c.String() 或 c.JSON() 返回响应。

直接用 r.GET() 就行,别绕弯
Gin 里配 GET 路由最简单的方式就是调用 r.GET(),传入路径和处理函数。不需要额外配置、不需要注册中间件、也不需要改引擎设置——gin.Default() 创建的实例开箱即用。
r.GET() 的参数和常见写法
它接收两个必填参数:relativePath string 和 handlers ...HandlerFunc。实际开发中绝大多数情况只用一个 handler 函数:
- 路径支持静态字符串,比如
"/health"、"/api/v1/users" - 路径支持路径参数,比如
"/user/:id",后续用c.Param("id")取值 - handler 函数签名固定为
func(*gin.Context),必须接收*gin.Context参数 - 返回响应推荐用
c.String()、c.JSON()或c.Status(),别直接写http.ResponseWriter
示例:
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.String(200, "pong")
})
r.GET("/user/:id", func(c *gin.Context) {
id := c.Param("id")
c.JSON(200, gin.H{"id": id})
})
容易踩的坑:路径结尾斜杠、大小写、404 原因
看似简单的 GET 路由,实际部署时 404 最常出在这几处:
-
r.GET("/api")不会匹配/api/(结尾多斜杠),Gin 默认不自动重定向,要启用需手动加r.RedirectTrailingSlash = true - 路径区分大小写:
r.GET("/User")和/user是两个路由,别依赖“应该能通” - 没调
r.Run()或端口被占用,服务根本没起来,curl 会直接 connection refused,不是 404 - 路由注册在
r.Run()之后——代码顺序错了,路由不会生效
要不要用 r.Any() 或 r.Handle() 代替 r.GET()?
没必要。除非你真要一个路由同时响应 GET/POST/PUT(极少见),否则硬上 r.Any() 会掩盖语义、增加调试成本。而 r.Handle("GET", ...) 是底层接口,可读性差、易写错方法名(比如拼成 "Get" 或 "get"),触发 405 Method Not Allowed 错误。
真正要注意的是:Gin 的路由树是启动时静态构建的,所有 r.GET() 必须在 r.Run() 前完成注册;动态增删路由在生产环境几乎不用,也缺乏并发安全保证。


















