Trait salvo_oapi::ToSchema

source ·
pub trait ToSchema {
    // Required method
    fn to_schema(components: &mut Components) -> RefOr<Schema>;
}
Expand description

Trait for implementing OpenAPI Schema object.

Generated schemas can be referenced or reused in path operations.

This trait is derivable and can be used with [#derive] attribute. For a details of #[derive(ToSchema)] refer to derive documentation.

Examples

Use #[derive] to implement ToSchema trait.

use salvo_oapi::ToSchema;
#[derive(ToSchema)]
#[salvo(schema(example = json!({"name": "bob the cat", "id": 1})))]
struct Pet {
    id: u64,
    name: String,
    age: Option<i32>,
}

Following manual implementation is equal to above derive one.

use salvo_oapi::{Components, ToSchema, RefOr, Schema, SchemaFormat, SchemaType, KnownFormat, Object};
impl ToSchema for Pet {
    fn to_schema(components: &mut Components) -> RefOr<Schema> {
        Object::new()
            .property(
                "id",
                Object::new()
                    .schema_type(SchemaType::Integer)
                    .format(SchemaFormat::KnownFormat(
                        KnownFormat::Int64,
                    )),
            )
            .required("id")
            .property(
                "name",
                Object::new()
                    .schema_type(SchemaType::String),
            )
            .required("name")
            .property(
                "age",
                Object::new()
                    .schema_type(SchemaType::Integer)
                    .format(SchemaFormat::KnownFormat(
                        KnownFormat::Int32,
                    )),
            )
            .example(serde_json::json!({
              "name":"bob the cat","id":1
            }))
            .into()
    }
}

Required Methods§

source

fn to_schema(components: &mut Components) -> RefOr<Schema>

Returns a tuple of name and schema or reference to a schema that can be referenced by the name or inlined directly to responses, request bodies or parameters.

Implementations on Foreign Types§

source§

impl ToSchema for bool

source§

fn to_schema(_components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for Error

source§

fn to_schema(components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for i16

source§

fn to_schema(_components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for StatusError

source§

fn to_schema(components: &mut Components) -> RefOr<Schema>

source§

impl<K: ToSchema, V: ToSchema> ToSchema for HashMap<K, V>

source§

fn to_schema(components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for u16

source§

fn to_schema(_components: &mut Components) -> RefOr<Schema>

source§

impl<T: ToSchema> ToSchema for &[T]

source§

fn to_schema(components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for u128

source§

fn to_schema(_components: &mut Components) -> RefOr<Schema>

source§

impl<T: ToSchema> ToSchema for Option<T>

source§

fn to_schema(components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for str

source§

fn to_schema(_components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for isize

source§

fn to_schema(_components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for &str

source§

fn to_schema(_components: &mut Components) -> RefOr<Schema>

source§

impl<K: ToSchema, V: ToSchema> ToSchema for BTreeMap<K, V>

source§

fn to_schema(components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for i128

source§

fn to_schema(_components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for f32

source§

fn to_schema(_components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for u64

source§

fn to_schema(_components: &mut Components) -> RefOr<Schema>

source§

impl<T: ToSchema> ToSchema for [T]

source§

fn to_schema(components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for char

source§

fn to_schema(_components: &mut Components) -> RefOr<Schema>

source§

impl<T: ToSchema> ToSchema for Vec<T>

source§

fn to_schema(components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for u32

source§

fn to_schema(_components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for u8

source§

fn to_schema(_components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for String

source§

fn to_schema(_components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for f64

source§

fn to_schema(_components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for i64

source§

fn to_schema(_components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for i32

source§

fn to_schema(_components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for usize

source§

fn to_schema(_components: &mut Components) -> RefOr<Schema>

source§

impl ToSchema for i8

source§

fn to_schema(_components: &mut Components) -> RefOr<Schema>

Implementors§