fixed: Nested routers are now allowed to have fallbacks (#1521):
let api_router = Router::new()
.route("/users", get(|| { ... }))
.fallback(api_fallback);
let app = Router::new()
// this would panic in 0.5 but in 0.6 it just works
//
// requests starting with /api but not handled by api_router
// will go to /api_fallback
.nest("/api", api_router);
The outer router's fallback will still apply if a nested router doesn't have
its own fallback:
// this time without a fallback
let api_router = Router::new().route("/users", get(|| { ... }));
let app = Router::new()
.nest("/api", api_router)
// api_fallback will inherit this fallback
.fallback(app_fallback);
breaking: The request /foo/ no longer matches /foo/*rest. If you want
to match /foo/ you have to add a route specifically for that (#1086)
For example:
use axum::{Router, routing::get, extract::Path};
let app = Router::new()
// this will match /foo/bar/baz
.route("/foo/*rest", get(handler))
// this will match /foo/
.route("/foo/", get(handler))
// if you want /foo to match you must also add an explicit route for it
.route("/foo", get(handler));
async fn handler(
// use an Option because /foo/ and /foo don't have any path params
params: Option<Path<String>>,
You can trigger a rebase of this PR by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps axum from 0.5.17 to 0.6.0.
Release notes
Sourced from axum's releases.
... (truncated)
Commits
1b6780c
axum 0.6 and friends 🎉 (#1570)0b26411
ChangeRouter::with_state
andimpl Service for Router\<()>
(#1552)fde38f6
docs: Addaxum-csrf-sync-pattern
toECOSYSTEM.md
(#1567)102d588
add showcase freedit (#1559)6771729
ImproveState
andRouter
docs (#1543)7d0bb28
Minor doc fixes (#1562)ddee1c1
docs: add how to use Arc<AppState> with the cookies examples (#1560)c7e696b
provide links to axum-sessions and axum-login (#1553)3ab3e5f
Usehttp
re-export in docs (#1554)8d2fb36
Remove unused imports from doctest (#1551)You can trigger a rebase of this PR by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)