Fiber路由必须以斜杠开头,如"/users";StrictRouting默认开启,故"/users"不匹配"/users/";handler须返回error,c不可传入goroutine。

直接用 app.Get()、app.Post() 这类方法注册就行,路径必须带前导斜杠,handler 必须返回 error,别漏掉 return。
路径写法:开头的 / 是硬性要求
Fiber 的路由匹配是严格前缀解析,不接受无斜杠路径。写成 "users" 或 "users/:id" 会导致 404;必须写成 "/users" 和 "/users/:id"。
-
app.Get("/users", h)→ 匹配GET /users -
app.Get("/users/:id", h)→ 匹配GET /users/123,c.Params("id")可取值 -
app.Get("/posts/:id/:version?", h)→:version?表示可选段,/posts/123和/posts/123/v2都能命中 - 不要混用通配符和参数:
/files/:user/*path启动报错invalid pattern,*path只能放在末尾且独占一段
Handler 必须显式 return error
Go 编译器会强制检查函数出口,func(c *fiber.Ctx) error 签名下任何分支都得有 return。常见卡点是复制粘贴后删掉了 return,导致编译失败。
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
-
return c.SendString("ok")✅ 最简洁写法 -
c.SendString("ok"); return nil✅ 合法但冗余 -
c.SendString("ok")❌ 编译报错:missing return at end of function - 如果 handler 中调用了异步逻辑(比如 goroutine),别把
c传进去——c是从 sync.Pool 复用的,生命周期只在当前请求内
StrictRouting 开启时,/users 和 /users/ 不等价
默认 StrictRouting: true,所以注册了 app.Get("/users", h) 后,GET /users/ 会 404。这不是 bug,是设计。
- 别急着关 StrictRouting——它一关,
/users和/users/:id就可能冲突(比如/users/被误匹配成:id = "") - 正确做法是补全注册:加一条
app.Get("/users/", h),或统一用/users/:id?并在 handler 里判空 - 如果要用通配路径(如
/api/*),确保它在路由表里位置靠后,避免覆盖更具体的/api/users
最易被忽略的是路径边界语义和 c 的复用特性:前者影响路由是否命中,后者一旦误传进 goroutine 就会引发响应错乱或 panic,且难以复现。


















