18 lines
414 B
Rust
18 lines
414 B
Rust
|
use http::Request;
|
||
|
use http_body_util::BodyExt;
|
||
|
use hyper::body::Incoming;
|
||
|
use serde::de::DeserializeOwned;
|
||
|
use std::error::Error;
|
||
|
|
||
|
pub struct Requester;
|
||
|
|
||
|
impl Requester {
|
||
|
pub async fn extract_body<T>(req: Request<Incoming>) -> Result<T, Box<dyn Error>>
|
||
|
where
|
||
|
T: DeserializeOwned,
|
||
|
{
|
||
|
let body = req.collect().await.unwrap().to_bytes();
|
||
|
Ok(serde_json::from_slice(&body)?)
|
||
|
}
|
||
|
}
|