Derive Macro poem_openapi::Response[][src]

#[derive(Response)]
{
    // Attributes available to this derive:
    #[oai]
}
Expand description

Define a OpenAPI response.

Macro parameters

AttributedescriptionTypeOptional
bad_request_handlerSets a custom bad request handler, it can convert error to the value of the this response type.stringY

Item parameters

AttributedescriptionTypeOptional
statusHTTP status code. If omitted, it is a default response type.u16Y

Header parameters

AttributedescriptionTypeOptional
nameHeader nameStringY
descHeader descriptionStringY

Examples

use poem_openapi::{payload::PlainText, Response, ParseRequestError};

#[derive(Response)]
#[oai(bad_request_handler = "bad_request_handler")]
enum CreateUserResponse {
    /// Returns when the user is successfully created.
    #[oai(status = 200)]
    Ok,
    /// Returns when the user already exists.
    #[oai(status = 409)]
    UserAlreadyExists,
    /// Returns when the request parameters is incorrect.
    #[oai(status = 400)]
    BadRequest(PlainText),
}

// Convert error to `CreateUserResponse::BadRequest`.
fn bad_request_handler(err: ParseRequestError) -> CreateUserResponse {
    CreateUserResponse::BadRequest(PlainText(format!("error: {}", err)))
}