Trait salvo_oapi::ToRequestBody

source ·
pub trait ToRequestBody {
    // Required method
    fn to_request_body(components: &mut Components) -> RequestBody;
}
Expand description

This trait is implemented to document a type (like an enum) which can represent request body, to be used in operation.

§Examples

use std::collections::BTreeMap;
use serde::Deserialize;
use salvo_oapi::{ToRequestBody, ToSchema, Components, Content, EndpointArgRegister, Operation, RequestBody };

#[derive(ToSchema, Deserialize, Debug)]
struct MyPayload {
    name: String,
}

impl ToRequestBody for MyPayload {
    fn to_request_body(components: &mut Components) -> RequestBody {
        RequestBody::new()
            .add_content("application/json", Content::new(MyPayload::to_schema(components)))
    }
}
impl EndpointArgRegister for MyPayload {
    fn register(components: &mut Components, operation: &mut Operation, _arg: &str) {
        operation.request_body = Some(Self::to_request_body(components));
    }
}

Required Methods§

source

fn to_request_body(components: &mut Components) -> RequestBody

Returns RequestBody.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<'de, T> ToRequestBody for FormBody<T>
where T: Deserialize<'de> + ToSchema,

source§

impl<'de, T> ToRequestBody for JsonBody<T>
where T: Deserialize<'de> + ToSchema,