Fiber中为同一路径支持多HTTP方法应使用All或Add:All一键绑定11种标准方法(注意StrictRouting影响HEAD),Add则可精确控制任意方法组合,但需严格使用大写标准方法名。

要在Fiber中为同一路径同时支持GET、POST、PUT、DELETE等多种HTTP方法,又不想重复写四次app.Get/Post/…,就得用All或Add——它们是Fiber底层最直接的多方法注册入口,绕过语法糖直达路由注册核心。
All方法:一键绑定全部标准HTTP方法
这一步操作起来很简单,直接调用app.All即可:
app.All("/api/users", handler)
它会自动将handler注册到所有11种标准HTTP方法(GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE、PATCH、PURGE、LOCK)下。注意:【All不区分大小写,但默认不启用StrictRouting,若你启用了StrictRouting = true,HEAD不会被自动包含】。
如果你只想覆盖常用方法而不包括CONNECT或TRACE,All就不适合——它没有白名单机制,要么全上,要么不用。
Add方法:精确控制任意方法+任意路径组合
Add是Fiber路由系统的底层注册原语,所有Get/Post/All最终都调用它。它接受三个参数:方法名(字符串)、路径、处理器。
方法一:单个方法注册
app.Add("POST", "/v1/login", loginHandler)
方法二:多个方法复用同一处理器(推荐)
app.Add("GET", "/posts", listHandler) → app.Add("HEAD", "/posts", listHandler) → app.Add("OPTIONS", "/posts", listHandler)
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
方法三:动态构造方法列表(适合权限或灰度场景)
for _, m := range []string{"GET", "PUT", "DELETE"} { app.Add(m, "/admin/config", adminHandler) }
注意:【Add不校验方法名合法性,传入"FOO"也能注册成功,但运行时无法匹配】。必须严格使用标准方法大写字符串。
路径注册优先级与冲突处理
第一步:静态路径优先于参数路径
app.Get("/users/new", newHandler) 和 app.Get("/users/:id", detailHandler) 可共存,/users/new永远先被匹配。
第二步:参数路径不阻断前缀共享,但同级参数名不可重复
app.Get("/user/:id", h1) 后再注册 app.Get("/user/:name", h2),后者会完全覆盖前者——因为:id和:name在radix树中被视为同一级param节点,后注册者胜出。
第三步:通配符*必须位于路径末尾且唯一
app.Get("/static/*filepath", staticHandler) ✅;app.Get("/a*b/c", h) ❌——Add会静默忽略非法通配位置,不报错也不注册。


















