1 unstable release
0.3.0 | Mar 15, 2023 |
---|
#40 in #derive-deserialize
14KB
237 lines
使用
添加到 Cargo.toml
rustcms-axum-xml = "0.3.0"
Extractor example
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`
}
Response example
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
XML extractor for axum.
This crate provides struct Xml
that can be used to extract typed information from request's body.
Under the hood, quick-xml is used to parse payloads.
Features
encoding
: support non utf-8 payload
License
MIT
Dependencies
~2.7–4.5MB
~87K SLoC