mirror of
https://github.com/tokio-rs/axum.git
synced 2026-08-28 00:00:20 +02:00
chore: Upgrade matchit to 0.8 (#2645)
This commit is contained in:
@@ -371,11 +371,11 @@ mod tests {
|
||||
async fn tsr_with_params() {
|
||||
let app = Router::new()
|
||||
.route_with_tsr(
|
||||
"/a/:a",
|
||||
"/a/{a}",
|
||||
get(|Path(param): Path<String>| async move { param }),
|
||||
)
|
||||
.route_with_tsr(
|
||||
"/b/:b/",
|
||||
"/b/{b}/",
|
||||
get(|Path(param): Path<String>| async move { param }),
|
||||
);
|
||||
|
||||
|
||||
@@ -19,13 +19,13 @@ use axum::{
|
||||
/// .create(|| async {})
|
||||
/// // `GET /users/new`
|
||||
/// .new(|| async {})
|
||||
/// // `GET /users/:users_id`
|
||||
/// // `GET /users/{users_id}`
|
||||
/// .show(|Path(user_id): Path<u64>| async {})
|
||||
/// // `GET /users/:users_id/edit`
|
||||
/// // `GET /users/{users_id}/edit`
|
||||
/// .edit(|Path(user_id): Path<u64>| async {})
|
||||
/// // `PUT or PATCH /users/:users_id`
|
||||
/// // `PUT or PATCH /users/{users_id}`
|
||||
/// .update(|Path(user_id): Path<u64>| async {})
|
||||
/// // `DELETE /users/:users_id`
|
||||
/// // `DELETE /users/{users_id}`
|
||||
/// .destroy(|Path(user_id): Path<u64>| async {});
|
||||
///
|
||||
/// let app = Router::new().merge(users);
|
||||
@@ -82,7 +82,9 @@ where
|
||||
self.route(&path, get(handler))
|
||||
}
|
||||
|
||||
/// Add a handler at `GET /{resource_name}/:{resource_name}_id`.
|
||||
/// Add a handler at `GET /<resource_name>/{<resource_name>_id}`.
|
||||
///
|
||||
/// For example when the resources are posts: `GET /post/{post_id}`.
|
||||
pub fn show<H, T>(self, handler: H) -> Self
|
||||
where
|
||||
H: Handler<T, S>,
|
||||
@@ -92,17 +94,21 @@ where
|
||||
self.route(&path, get(handler))
|
||||
}
|
||||
|
||||
/// Add a handler at `GET /{resource_name}/:{resource_name}_id/edit`.
|
||||
/// Add a handler at `GET /<resource_name>/{<resource_name>_id}/edit`.
|
||||
///
|
||||
/// For example when the resources are posts: `GET /post/{post_id}/edit`.
|
||||
pub fn edit<H, T>(self, handler: H) -> Self
|
||||
where
|
||||
H: Handler<T, S>,
|
||||
T: 'static,
|
||||
{
|
||||
let path = format!("/{0}/:{0}_id/edit", self.name);
|
||||
let path = format!("/{0}/{{{0}_id}}/edit", self.name);
|
||||
self.route(&path, get(handler))
|
||||
}
|
||||
|
||||
/// Add a handler at `PUT or PATCH /resource_name/:{resource_name}_id`.
|
||||
/// Add a handler at `PUT or PATCH /<resource_name>/{<resource_name>_id}`.
|
||||
///
|
||||
/// For example when the resources are posts: `PUT /post/{post_id}`.
|
||||
pub fn update<H, T>(self, handler: H) -> Self
|
||||
where
|
||||
H: Handler<T, S>,
|
||||
@@ -115,7 +121,9 @@ where
|
||||
)
|
||||
}
|
||||
|
||||
/// Add a handler at `DELETE /{resource_name}/:{resource_name}_id`.
|
||||
/// Add a handler at `DELETE /<resource_name>/{<resource_name>_id}`.
|
||||
///
|
||||
/// For example when the resources are posts: `DELETE /post/{post_id}`.
|
||||
pub fn destroy<H, T>(self, handler: H) -> Self
|
||||
where
|
||||
H: Handler<T, S>,
|
||||
@@ -130,7 +138,7 @@ where
|
||||
}
|
||||
|
||||
fn show_update_destroy_path(&self) -> String {
|
||||
format!("/{0}/:{0}_id", self.name)
|
||||
format!("/{0}/{{{0}_id}}", self.name)
|
||||
}
|
||||
|
||||
fn route(mut self, path: &str, method_router: MethodRouter<S>) -> Self {
|
||||
|
||||
@@ -19,15 +19,15 @@ use serde::Serialize;
|
||||
/// RouterExt, // for `Router::typed_*`
|
||||
/// };
|
||||
///
|
||||
/// // A type safe route with `/users/:id` as its associated path.
|
||||
/// // A type safe route with `/users/{id}` as its associated path.
|
||||
/// #[derive(TypedPath, Deserialize)]
|
||||
/// #[typed_path("/users/:id")]
|
||||
/// #[typed_path("/users/{id}")]
|
||||
/// struct UsersMember {
|
||||
/// id: u32,
|
||||
/// }
|
||||
///
|
||||
/// // A regular handler function that takes `UsersMember` as the first argument
|
||||
/// // and thus creates a typed connection between this handler and the `/users/:id` path.
|
||||
/// // and thus creates a typed connection between this handler and the `/users/{id}` path.
|
||||
/// //
|
||||
/// // The `TypedPath` must be the first argument to the function.
|
||||
/// async fn users_show(
|
||||
@@ -39,7 +39,7 @@ use serde::Serialize;
|
||||
/// let app = Router::new()
|
||||
/// // Add our typed route to the router.
|
||||
/// //
|
||||
/// // The path will be inferred to `/users/:id` since `users_show`'s
|
||||
/// // The path will be inferred to `/users/{id}` since `users_show`'s
|
||||
/// // first argument is `UsersMember` which implements `TypedPath`
|
||||
/// .typed_get(users_show)
|
||||
/// .typed_post(users_create)
|
||||
@@ -75,7 +75,7 @@ use serde::Serialize;
|
||||
/// use axum_extra::routing::TypedPath;
|
||||
///
|
||||
/// #[derive(TypedPath, Deserialize)]
|
||||
/// #[typed_path("/users/:id")]
|
||||
/// #[typed_path("/users/{id}")]
|
||||
/// struct UsersMember {
|
||||
/// id: u32,
|
||||
/// }
|
||||
@@ -100,7 +100,7 @@ use serde::Serialize;
|
||||
/// use axum_extra::routing::TypedPath;
|
||||
///
|
||||
/// #[derive(TypedPath, Deserialize)]
|
||||
/// #[typed_path("/users/:id/teams/:team_id")]
|
||||
/// #[typed_path("/users/{id}/teams/{team_id}")]
|
||||
/// struct UsersMember {
|
||||
/// id: u32,
|
||||
/// }
|
||||
@@ -117,7 +117,7 @@ use serde::Serialize;
|
||||
/// struct UsersCollection;
|
||||
///
|
||||
/// #[derive(TypedPath, Deserialize)]
|
||||
/// #[typed_path("/users/:id")]
|
||||
/// #[typed_path("/users/{id}")]
|
||||
/// struct UsersMember(u32);
|
||||
/// ```
|
||||
///
|
||||
@@ -130,7 +130,7 @@ use serde::Serialize;
|
||||
/// use axum_extra::routing::TypedPath;
|
||||
///
|
||||
/// #[derive(TypedPath, Deserialize)]
|
||||
/// #[typed_path("/users/:id")]
|
||||
/// #[typed_path("/users/{id}")]
|
||||
/// struct UsersMember {
|
||||
/// id: String,
|
||||
/// }
|
||||
@@ -158,7 +158,7 @@ use serde::Serialize;
|
||||
/// };
|
||||
///
|
||||
/// #[derive(TypedPath, Deserialize)]
|
||||
/// #[typed_path("/users/:id", rejection(UsersMemberRejection))]
|
||||
/// #[typed_path("/users/{id}", rejection(UsersMemberRejection))]
|
||||
/// struct UsersMember {
|
||||
/// id: String,
|
||||
/// }
|
||||
@@ -215,7 +215,7 @@ use serde::Serialize;
|
||||
/// [`Deserialize`]: serde::Deserialize
|
||||
/// [`PathRejection`]: axum::extract::rejection::PathRejection
|
||||
pub trait TypedPath: std::fmt::Display {
|
||||
/// The path with optional captures such as `/users/:id`.
|
||||
/// The path with optional captures such as `/users/{id}`.
|
||||
const PATH: &'static str;
|
||||
|
||||
/// Convert the path into a `Uri`.
|
||||
@@ -398,7 +398,7 @@ mod tests {
|
||||
use serde::Deserialize;
|
||||
|
||||
#[derive(TypedPath, Deserialize)]
|
||||
#[typed_path("/users/:id")]
|
||||
#[typed_path("/users/{id}")]
|
||||
struct UsersShow {
|
||||
id: i32,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user