Fiber 路由需以 / 开头、StrictRouting 默认开启、 通配符仅限末尾、handler 必须返回 error;路径如 "/users" 合法,"users" 导致 404;/users/:id 可提取参数,/files/:user/path 启动 panic;/posts/:id/:version? 中 ? 表示可选;中间件 app.Use("/users", ...) 前缀匹配,兼容 /users 和 /users/。

app.Get()、app.Post() 等方法就是配置 Fiber 路由最直接的方式,不需要额外中间件或配置层——路径写对、参数提取逻辑理清、handler 返回 error,路由就跑起来了。
路径必须带前导斜杠
写成 "users" 会完全匹配失败,Fiber 路由引擎只认以 / 开头的路径:
-
app.Get("/users", h)✅ 正确 -
app.Get("users", h)❌ 启动不报错,但所有请求都 404 - 子路由也一样:
app.Get("/api/v1/users", h)合法;app.Get("api/v1/users", h)无效
参数提取用 :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 默认开启,末尾斜杠不自动兼容
注册了 app.Get("/users", h),访问 /users/ 就是 404 —— 这不是 bug,是设计。关掉 StrictRouting 容易引发歧义(比如 /users 和 /users/:id 冲突),更稳妥的做法是:
- 明确约定接口规范,统一不带末尾斜杠
- 需要兼容时,显式注册两条:
app.Get("/users", h)和app.Get("/users/", h) - 若用
app.Use("/users", ...)挂载中间件,它对/users和/users/都生效(因为Use是前缀匹配)
handler 必须返回 error 类型
Go 编译器强制检查,漏掉 return 直接编译失败:
-
return c.SendString("ok")✅ 正确,SendString本身返回error -
c.SendString("ok"); return nil✅ 可行,但冗余 -
c.SendString("ok")❌ 编译错误:missing return at end of function - 别在 handler 里用
log.Fatal或os.Exit,会中断整个服务
* 位置限制、以及 handler 的 error 强制返回,这四点最容易在调试时卡住半天。写完路由别急着测接口,先扫一眼这些硬约束。


















