1个不稳定版本
0.1.0 | 2023年7月25日 |
---|
#10 在 #urlencoded
10KB
140 行
axum-bindform
在Axum中绑定XML、JSON、URL编码或查询字符串表单数据。
lib.rs
:
在Axum中绑定XML、JSON、URL编码或查询字符串表单数据。
示例
use axum::http::StatusCode;
use axum_bindform::{BindForm, TryBindForm};
use serde::{Deserialize, Serialize};
#[derive(Deserialize, Serialize)]
struct Human {
name: String,
age: u8,
}
async fn greet_human(BindForm(form): BindForm<Human>) -> String {
format!("Hello {} year old named {}!", form.age, form.name)
}
async fn try_greet_human(
TryBindForm(form): TryBindForm<Human>,
) -> Result<String, (StatusCode, String)> {
let form = form.map_err(|e| {
(
StatusCode::BAD_REQUEST,
format!("Error parsing form: {}", e),
)
})?;
Ok(format!("Hello {} year old named {}!", form.age, form.name))
}
依赖关系
~6–21MB
~259K SLoC