Axum可以通过在消息体中包含参数来将参数传递给处理程序。以下是一个使用Axum的示例代码,该代码将HTTP请求中的查询字符串参数传递给处理程序:
use axum::{extract::Query, handler::get, Router};
use serde::Deserialize;
#[derive(Debug, Deserialize)]
struct GreetingParams {
name: String,
}
async fn hello(Query(params): Query) -> String {
format!("Hello, {}!", params.name)
}
#[tokio::main]
async fn main() {
let app = Router::new().route("/", get(hello));
axum::Server::bind(&"127.0.0.1:3000".parse().unwrap())
.serve(app.into_make_service())
.await
.unwrap();
}
在这里,我们首先定义了一个结构体GreetingParams
来表示查询字符串参数。然后,我们使用Query
提取器将这些参数从请求中提取出来,并将它们传递给hello
处理程序。在hello
处理程序中,我们使用params
来访问查询字符串参数,并使用它们来构建响应。
上一篇:Axum能否在单线程上运行?
下一篇:Axum帖子的更高级生命周期错误