1个不稳定版本

0.3.0 2023年3月15日

#53 in #derive-deserialize

MIT许可证

14KB
237

使用

添加到 Cargo.toml

rustcms-axum-xml = "0.3.0"

提取器示例

use axum::{
    extract,
    routing::post,
    Router,
};
use serde::Deserialize;
use rustcms_axum_xml::Xml;
///
#[derive(Deserialize)]
struct CreateUser {
    email: String,
    password: String,
}
///
async fn create_user(Xml(payload): Xml<CreateUser>) {
    // payload is a `CreateUser`
}

响应示例

use axum::{
    extract::Path,
    routing::get,
    Router,
};
use serde::Serialize;
use uuid::Uuid;
use rustcms_axum_xml::Xml;

#[derive(Serialize)]
struct User {
    id: Uuid,
    username: String,
}

async fn get_user(Path(user_id) : Path<Uuid>) -> Json<User> {
    let user = find_user(user_id).await;
    Xml(user)
}

新版本rustcms-axum-xml

由于axum-xml 0.2.0不支持新版本的axum,因此在其基础上进行修改,并参考axum Json处理Xml

axum的XML提取器。

此crate提供了可以用于从请求体中提取类型化信息的struct Xml

底层使用quick-xml来解析负载。

功能

  • encoding:支持非utf-8负载

许可证

MIT

依赖

~2.8–4.5MB
~89K SLoC