SuperAPI AI 工具集

axum-core-router

通用与其它

查看项目

更新于 10-15 22:17

技能介绍

用途:帮助在 Axum 中定义路由、挂载子路由、装配中间件,并排查启动时路由 panic、404 与 405 混淆、中间件只对部分路由生效等问题。

主要能力:Router<S> 是核心路由类型,S 为仍需的状态类型,可服务的是 Router<()>。支持 .route() 注册路径到 MethodRouter,.route_service() 注册原始 tower::Service,.nest() 挂载带前缀的子路由(前缀会被剥离),.nest_service() 挂载服务,.merge() 同层展平路由,.fallback() 处理未匹配路径,.method_not_allowed_fallback() 设置全局 405,.reset_fallback() 清除回退,.with_state() 提供状态。方法路由函数包括 get、post、put、delete、patch、head、options、connect、trace、any 与 on(filter, handler),均有 *_service 变体。

用法要点:路径参数在 0.7 为 /users/:id、/assets/*path,在 0.8 为 /users/{id}、/assets/{*path},必须与目标版本一致,否则在路由构建时 panic。.layer() 只包裹调用之前注册的路由,需放在要覆盖的路由之后;.route_layer() 仅在路由匹配时运行,适合鉴权,且未注册路由时调用会 panic。两个都设置 fallback 的路由直接 merge 会 panic,需先对一个调用 .reset_fallback()。把 Router 传给 .route_service() 会 panic,应使用 .nest()。路径匹配但方法未注册返回 405,不会进入 Router::fallback。静态段优先于动态捕获,真正重叠的路由在构建时 panic,空路径字符串也会 panic。

适用场景:Axum 服务端路由搭建、子路由与中间件组织、状态注入、404/405 定制,以及 0.7 到 0.8 路径语法迁移排查。

限制:资料未提供安装命令、版本兼容范围之外的细节、性能数据或收费信息。