Skip to main content

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 salvo_oapi::{
    Components, Content, EndpointArgRegister, Operation, RequestBody, ToRequestBody, ToSchema,
};
use serde::Deserialize;

#[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".

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,