mirror of
https://github.com/tokio-rs/axum.git
synced 2026-08-27 00:00:24 +02:00
+8
-18
@@ -9,6 +9,7 @@ use hyper::{Body, Server};
|
||||
use serde::Deserialize;
|
||||
use serde_json::json;
|
||||
use std::{
|
||||
collections::HashMap,
|
||||
convert::Infallible,
|
||||
net::{SocketAddr, TcpListener},
|
||||
task::{Context, Poll},
|
||||
@@ -244,20 +245,14 @@ async fn routing() {
|
||||
async fn extracting_url_params() {
|
||||
let app = route(
|
||||
"/users/:id",
|
||||
get(|params: extract::UrlParams<(i32,)>| async move {
|
||||
let (id,) = params.0;
|
||||
get(|extract::Path(id): extract::Path<i32>| async move {
|
||||
assert_eq!(id, 42);
|
||||
})
|
||||
.post(|params_map: extract::UrlParamsMap| async move {
|
||||
assert_eq!(params_map.get("id").unwrap(), "1337");
|
||||
assert_eq!(
|
||||
params_map
|
||||
.get_typed::<i32>("id")
|
||||
.expect("missing")
|
||||
.expect("failed to parse"),
|
||||
1337
|
||||
);
|
||||
}),
|
||||
.post(
|
||||
|extract::Path(params_map): extract::Path<HashMap<String, i32>>| async move {
|
||||
assert_eq!(params_map.get("id").unwrap(), &1337);
|
||||
},
|
||||
),
|
||||
);
|
||||
|
||||
let addr = run_in_background(app).await;
|
||||
@@ -283,12 +278,7 @@ async fn extracting_url_params() {
|
||||
async fn extracting_url_params_multiple_times() {
|
||||
let app = route(
|
||||
"/users/:id",
|
||||
get(
|
||||
|_: extract::UrlParams<(i32,)>,
|
||||
_: extract::UrlParamsMap,
|
||||
_: extract::UrlParams<(i32,)>,
|
||||
_: extract::UrlParamsMap| async {},
|
||||
),
|
||||
get(|_: extract::Path<i32>, _: extract::Path<String>| async {}),
|
||||
);
|
||||
|
||||
let addr = run_in_background(app).await;
|
||||
|
||||
Reference in New Issue
Block a user