Info
This post is auto-generated from RSS feed The Rust Programming Language Forum - Latest topics. Source: [Actix] How to reveal the JSON string when it fails to be extracted as Json?
Actix extractors make it simple to get the target data types to directly handle in handlers, like
#[post("/records")]
async fn post_records(
service_data: Data<X>,
changes: Json<Changes>,
) -> (String, StatusCode);
But when client posts wrong Json format, by default, all I got was an unable to parse error. I want to get the JSON for debugging.
Seeing in its document, there is a JsonConfig
I can play a little. But following code actually could not compile since the handler is not async.
.app_data(JsonConfig::default().error_handler(|err, req| {
let bytes = Bytes::extract(req).await.unwrap();
let str = String::from_utf8(bytes.to_vec()).unwrap();
log::warn!("{:?}", str);
err.into()
}))
So what is the correct way? If I do not want to just get the raw body in handler and deserialize by myself?
1 post - 1 participant
🏷️ Rust_feed