Skip to main content

TypewaySchema

Derive Macro TypewaySchema 

Source
#[derive(TypewaySchema)]
Expand description

Derives a ToSchema implementation for a struct with named fields.

Struct-level and field-level doc comments become description values in the generated OpenAPI schema. Supports #[serde(rename_all = "...")] on the struct and #[serde(rename = "...")] on individual fields.

§Example

/// A user account.
#[derive(TypewaySchema)]
struct User {
    /// The unique user identifier.
    id: u32,
    /// The user's display name.
    name: String,
}

Generates an impl typeway_openapi::ToSchema for User that returns an object schema with id and name properties, each carrying its doc comment as a description.

§Serde rename support

#[derive(TypewaySchema)]
#[serde(rename_all = "camelCase")]
struct Article {
    article_title: String,
    tag_list: Vec<String>,
}

The generated schema uses articleTitle and tagList as property names. Per-field #[serde(rename = "...")] overrides rename_all.

Supported rename strategies: camelCase, snake_case, PascalCase, SCREAMING_SNAKE_CASE, kebab-case.