Derive Macro HttpRequest

Source
#[derive(HttpRequest)]
{
    // Attributes available to this derive:
    #[http_request]
}
Expand description

HttpRequest can be derived by structs that needs to implement the HttpRequest trait.

It generates the request types (e.g. Response, Body or Query) and the getter functions

§Examples:

§GET Endpoint with dynamic path

#[derive(HttpRequest)]
#[http_request(
    method = "GET",
    response = GetItemResponse,
    path = "/v1/item/{0}"
)]
pub struct GetItemRequest(pub usize);

§GET Endpoint with query parameters

#[derive(HttpRequest)]
#[http_request(
    method = "GET",
    response = String,
    path = "/v1/items"
)]
pub struct GetItemsWithQueryRequest {
    #[http_request(query)]
    pub query: PostEventInviteQuery,
}

§POST Endpoint with multiple attributes

#[derive(HttpRequest)]
#[http_request(
    method = "POST",
    response = SampleResponse,
    path = "/v1/item/{id}"
)]
pub struct SampleRequest {
    pub id: usize,

    #[http_request(query)]
    pub query: SampleQuery,

    #[http_request(body)]
    pub body: SampleBody,

    #[http_request(header)]
    pub header: http::HeaderMap,
}

HttpRequest derive macro