pub trait Queryable<RequiredApiState, ResponseType: DeserializeOwned> {
// Required method
fn url(&self, state: &RequiredApiState) -> String;
// Provided methods
fn method(&self, _state: &RequiredApiState) -> RequestMethod { ... }
fn body(&self, _state: &RequiredApiState) -> Option<Result<Vec<u8>>> { ... }
fn deserialize(&self, data: &[u8]) -> Result<ResponseType> { ... }
}
Expand description
Data for a HTTP request & response
Required Methods§
sourcefn url(&self, state: &RequiredApiState) -> String
fn url(&self, state: &RequiredApiState) -> String
The URL of the request
Provided Methods§
sourcefn method(&self, _state: &RequiredApiState) -> RequestMethod
fn method(&self, _state: &RequiredApiState) -> RequestMethod
The method to use for the request
Defaults to GET
.
sourcefn body(&self, _state: &RequiredApiState) -> Option<Result<Vec<u8>>>
fn body(&self, _state: &RequiredApiState) -> Option<Result<Vec<u8>>>
Creates a JSON body for the request
Defaults to no body.
sourcefn deserialize(&self, data: &[u8]) -> Result<ResponseType>
fn deserialize(&self, data: &[u8]) -> Result<ResponseType>
Deserializes the API response into the struct, by default using
serde_json
.
Required to allow deserializing empty tuples for example,
because serde_json
considers empty values to not be valid JSON.
Errors
If deserializing fails