app.get()、app.post()等方法是fiber设置基础路由最直接的方式,路径必须带前导斜杠,参数用:id形式提取并存入c.params("id"),handler函数必须返回error类型。

app.Get()、app.Post() 等方法就是设置 Fiber 基础路由最直接的方式,不需要额外配置或中间件。
路径必须带前导斜杠
Fiber 路由匹配是严格基于字符串前缀的,路径开头的 / 是强制要求:
-
app.Get("/users", h)✅ 正确,能匹配GET /users -
app.Get("users", h)❌ 错误,永远无法命中任何请求,引擎会跳过该路由注册
这是因为 Fiber 的 radix 树根节点只响应以 / 开头的路径段;不带斜杠的字符串会被当作无效路径直接丢弃。
:id 参数提取和命名规则
动态段用 :name 形式声明,Fiber 会在运行时自动提取并存入 c.Params("name"):
-
app.Get("/users/:id", h)→ 请求/users/123时,c.Params("id") == "123" -
app.Get("/posts/:year/:month", h)→/posts/2026/10提取两个参数 - 参数名不能含斜杠或点,比如
:user.name或:v1/users都非法 - 同级不能定义多个参数节点:
/users/:id/:name合法,但/users/:id/:id会覆盖,后者生效
注意::id 不做格式校验,/users/abc 也能成功匹配 —— 若需校验,得在 handler 里手动判断。
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
handler 必须返回 error 类型
Fiber 的路由函数签名固定为 func(c *fiber.Ctx) error,且 Go 编译器强制要求显式 return:
-
return c.SendString("ok")✅ 正确,SendString自带返回error -
c.SendString("ok"); return nil✅ 可行,但多写一行 -
c.SendString("ok")❌ 编译失败:missing return at end of function
新手常复制示例后删掉 return,结果卡在编译错误。只要记住:所有 handler 函数末尾必须有 return 表达式,哪怕只是 return nil。
StrictRouting 对末尾斜杠的影响
Fiber 默认开启 StrictRouting: true,这意味着:
-
app.Get("/users", h)只匹配GET /users,不匹配/users/ -
app.Get("/users/", h)才匹配/users/,两者互不兼容
不要为了“兼容”而关掉 StrictRouting —— 它容易引发歧义,比如 /users 和 /users/:id 在非严格模式下可能产生冲突。正确做法是:按需明确定义,需要支持斜杠就单独注册一条路由,或统一约定客户端不带末尾斜杠。










