ToRequestBody

Trait 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.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so 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,