Trait racal::Queryable

source ·
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§

source

fn url(&self, state: &RequiredApiState) -> String

The URL of the request

Provided Methods§

source

fn method(&self, _state: &RequiredApiState) -> RequestMethod

The method to use for the request

Defaults to GET.

source

fn body(&self, _state: &RequiredApiState) -> Option<Result<Vec<u8>>>

Creates a JSON body for the request

Defaults to no body.

source

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

Implementors§