优化body extractor

This commit is contained in:
liyunjia 2024-12-07 20:41:54 +08:00
parent b5368b2709
commit 4b2744de4e

View File

@ -47,33 +47,33 @@ where
if let Some(content_type) = content_type { if let Some(content_type) = content_type {
if content_type.starts_with("application/json") { if content_type.starts_with("application/json") {
match axum::Json::<T>::from_request(req, state).await { return match axum::Json::<T>::from_request(req, state).await {
Ok(value) => { Ok(value) => {
let data = value.0; let data = value.0;
match crate::model::validator::validate_params(&data, lang_tag) { match crate::model::validator::validate_params(&data, lang_tag) {
Ok(_) => return Ok(Self(data)), Ok(_) => Ok(Self(data)),
Err(err) => return Err(err), Err(err) => Err(err),
} }
} }
// convert the error from `axum::Json` into whatever we want // convert the error from `axum::Json` into whatever we want
Err(rejection) => { Err(rejection) => {
tracing::error!("无效的json数据: {:?}", rejection); tracing::error!("无效的json数据: {:?}", rejection);
return Err(ResErr::params(message!(lang_tag, MessageId::InvalidParams))); Err(ResErr::params(message!(lang_tag, MessageId::InvalidParams)))
} }
} }
} else if content_type.starts_with("application/x-www-form-urlencoded") { } else if content_type.starts_with("application/x-www-form-urlencoded") {
match axum::Form::<T>::from_request(req, state).await { return match axum::Form::<T>::from_request(req, state).await {
Ok(value) => { Ok(value) => {
let data = value.0; let data = value.0;
match crate::model::validator::validate_params(&data, lang_tag) { match crate::model::validator::validate_params(&data, lang_tag) {
Ok(_) => return Ok(Self(data)), Ok(_) => Ok(Self(data)),
Err(err) => return Err(err), Err(err) => Err(err),
} }
} }
// convert the error from `axum::Json` into whatever we want // convert the error from `axum::Json` into whatever we want
Err(rejection) => { Err(rejection) => {
tracing::error!("无效的json数据: {:?}", rejection); tracing::error!("无效的json数据: {:?}", rejection);
return Err(ResErr::params(message!(lang_tag, MessageId::InvalidParams))); Err(ResErr::params(message!(lang_tag, MessageId::InvalidParams)))
} }
} }
} }