Struct axum::extract::MatchedPath
source ·
[−]pub struct MatchedPath(_);
Expand description
Access the path in the router that matches the request.
use axum::{
Router,
extract::MatchedPath,
routing::get,
};
let app = Router::new().route(
"/users/:id",
get(|path: MatchedPath| async move {
let path = path.as_str();
// `path` will be "/users/:id"
})
);
MatchedPath
can also be accessed from middleware via request extensions.
This is useful for example with Trace
to
create a span that contains the matched path:
use axum::{
Router,
extract::MatchedPath,
http::Request,
routing::get,
};
use tower_http::trace::TraceLayer;
let app = Router::new()
.route("/users/:id", get(|| async { /* ... */ }))
.layer(
TraceLayer::new_for_http().make_span_with(|req: &Request<_>| {
let path = if let Some(path) = req.extensions().get::<MatchedPath>() {
path.as_str()
} else {
req.uri().path()
};
tracing::info_span!("http-request", %path)
}),
);
Implementations
Trait Implementations
type Rejection = MatchedPathRejection
type Rejection = MatchedPathRejection
If the extractor fails it’ll use this “rejection” type. A rejection is a kind of error that can be converted into a response. Read more
fn from_request<'life0, 'async_trait>(
req: &'life0 mut RequestParts<B>
) -> Pin<Box<dyn Future<Output = Result<Self, Self::Rejection>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
fn from_request<'life0, 'async_trait>(
req: &'life0 mut RequestParts<B>
) -> Pin<Box<dyn Future<Output = Result<Self, Self::Rejection>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Perform the extraction.
Auto Trait Implementations
impl RefUnwindSafe for MatchedPath
impl Send for MatchedPath
impl Sync for MatchedPath
impl Unpin for MatchedPath
impl UnwindSafe for MatchedPath
Blanket Implementations
Mutably borrows from an owned value. Read more
Create a new Policy
that returns Action::Follow
only if self
and other
return
Action::Follow
. Read more
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more