Trait api_request_utils_rs::RequestHandler
source · pub trait RequestHandler {
// Provided method
fn request<'async_trait, T, E>(
request: RequestBuilder
) -> Pin<Box<dyn Future<Output = Result<T, RequestError<E>>> + Send + 'async_trait>>
where T: DeserializeOwned + 'async_trait,
E: DeserializeOwned + 'async_trait { ... }
}
Expand description
A trait for handling HTTP requests.
Provided Methods§
sourcefn request<'async_trait, T, E>(
request: RequestBuilder
) -> Pin<Box<dyn Future<Output = Result<T, RequestError<E>>> + Send + 'async_trait>>where
T: DeserializeOwned + 'async_trait,
E: DeserializeOwned + 'async_trait,
fn request<'async_trait, T, E>( request: RequestBuilder ) -> Pin<Box<dyn Future<Output = Result<T, RequestError<E>>> + Send + 'async_trait>>where T: DeserializeOwned + 'async_trait, E: DeserializeOwned + 'async_trait,
Sends a request using the given RequestBuilder and handles the response.
Examples
#[tokio::main]
async fn main() {
let url = "https://api.example.com";
let request = reqwest::Client::new().get(url);
match request::<serde_json::Value, serde_json::Value>(request).await {
Ok(response) => {
println!("Response: {:?}", response);
}
Err(error) => {
match error {
RequestError::Internal(message) => {
eprintln!("Internal Error: {}", message);
}
RequestError::Json(error_data) => {
eprintln!("JSON Error: {:?}", error_data);
}
}
}
}
}