1个不稳定版本
0.3.0 | 2023年3月15日 |
---|
#53 in #derive-deserialize
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