fiber路由需路径以/开头、handler必须返回error、参数用:id、通配符*仅限末尾、strictrouting默认开启且不自动重定向末尾斜杠。

直接用 app.Get、app.Post 这类方法注册就行,不需要额外配置或中间件启动路由系统——Fiber 的路由是开箱即用的,只要路径带前导 /、handler 返回 error,就一定能跑通。
路径必须以斜杠开头,否则 404
Fiber 不接受无前导斜杠的路径写法。比如 app.Get("users", h) 是无效的,它不会匹配任何请求,连编译都不报错,但运行时永远 404。
-
app.Get("/users", h)✅ 正确,匹配GET /users -
app.Get("users", h)❌ 无效,路径不合法,请求全丢进 404 - 子路由也一样:用
app.Group("/api")后,里面所有路径仍要以/开头(如grp.Get("/users")),不能写成grp.Get("users")
参数提取用 :id,通配符 * 只能放末尾
Fiber 的参数节点和通配符不是正则,而是基于路径段分割的线性匹配,所以顺序和位置非常关键。
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
-
/users/:id✅ 提取单一段,c.Params("id")拿到值 -
/files/:user/*path❌ 启动直接 panic:invalid pattern,因为*必须在路径最末 -
/posts/:id/:version?✅?表示该段可选,/posts/123和/posts/123/v2都能命中 - 多层动态路径别硬塞通配符,改用
/api/:version/users/:id/:section更清晰、更稳定
StrictRouting 默认开启,末尾斜杠不自动重定向
默认 StrictRouting: true,意味着 app.Get("/users", h) 和 GET /users/ 是两个不同路径,后者会 404。
- 这不是 bug,是设计:避免
/users和/users/:id出现歧义匹配 - 别关
StrictRouting(容易引发路由冲突),而是统一约定接口风格,比如全部不带末尾斜杠 - 如果真需要兼容斜杠结尾,加一条显式路由:
app.Get("/users/", h),或者用中间件做 301 重定向
handler 必须返回 error,漏掉 return 就编译失败
Fiber handler 签名强制为 func(c *fiber.Ctx) error,Go 编译器会检查函数是否每条路径都返回 error 或 nil。
-
return c.SendString("ok")✅ 正确,SendString返回error -
c.SendString("ok"); return nil✅ 也可,但冗余 -
c.SendString("ok")❌ 编译报错:missing return at end of function - 常见坑:复制粘贴时删掉了
return,或写了if err != nil { return err }但忘了补return nil在最后
真正容易被忽略的是上下文生命周期——c.Params、c.Query 等返回的字符串底层复用缓冲区,不能跨 handler 保存引用;要用就立刻拷贝,比如 utils.CopyString(c.Params("id")),否则可能读到脏数据。










