#forms #axum #urlencoded #json-xml #xml #json

axum-bindform

在Axum中绑定XML、JSON、URL编码或查询字符串表单数据

1个不稳定版本

0.1.0 2023年7月25日

#10#urlencoded

Apache-2.0

10KB
140

axum-bindform

Documentation

在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