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.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl ToSchema for &str

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 Value

source§

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

source§

impl ToSchema for bool

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 ToSchema for f32

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 i8

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 i32

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 i128

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 ToSchema for u8

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 ToSchema for u32

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 ToSchema for u128

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 String

source§

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

source§

impl ToSchema for NaiveDate

source§

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

source§

impl ToSchema for NaiveDateTime

source§

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

source§

impl ToSchema for Decimal

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 ToSchema for Map<String, Value>

source§

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

source§

impl ToSchema for Date

source§

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

source§

impl ToSchema for Duration

source§

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

source§

impl ToSchema for OffsetDateTime

source§

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

source§

impl ToSchema for PrimitiveDateTime

source§

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

source§

impl ToSchema for Ulid

source§

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

source§

impl ToSchema for Url

source§

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

source§

impl ToSchema for Uuid

source§

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

source§

impl ToSchema for Duration

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<K: ToSchema, V: ToSchema> ToSchema for HashMap<K, V>

source§

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

source§

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

source§

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

source§

impl<T> ToSchema for PhantomData<T>

source§

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

source§

impl<T, E> ToSchema for Result<T, E>
where T: ToSchema, E: ToSchema,

source§

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

source§

impl<T: TimeZone> ToSchema for DateTime<T>

source§

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

source§

impl<T: ToSchema + Array> ToSchema for SmallVec<T>

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<T: ToSchema> ToSchema for Option<T>

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<T: ToSchema> ToSchema for LinkedList<T>

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<T: ToSchema, const N: usize> ToSchema for [T; N]

source§

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

Implementors§