pub struct Schema {Show 20 fields
pub reference: Option<String>,
pub title: Option<String>,
pub description: Option<String>,
pub all_of: Option<Vec<Box<Schema>>>,
pub kind: Option<SchemaType>,
pub format: Option<String>,
pub properties: Option<BTreeMap<String, SchemaProperty>>,
pub minimum: Option<u64>,
pub maximum: Option<u64>,
pub items: Option<Box<Schema>>,
pub min_items: Option<u64>,
pub max_items: Option<u64>,
pub unique_items: Option<bool>,
pub min_length: Option<u64>,
pub max_length: Option<u64>,
pub required: Option<Vec<String>>,
pub discriminator: Option<Discriminator>,
pub xml: Option<XML>,
pub external_docs: Option<ExternalDocs>,
pub example: Option<Value>,
}Expand description
JSON Schema definition for data models.
Defines the structure and constraints of data types used in the API. Can represent primitive types, objects, arrays, or references to other schemas.
§Example
use product_os_openapi::{Schema, SchemaType, SchemaProperty};
use std::collections::BTreeMap;
let mut properties = BTreeMap::new();
properties.insert("id".to_owned(), SchemaProperty {
reference: None,
description: Some("User ID".to_owned()),
all_of: None,
kind: Some(SchemaType::Integer),
minimum: Some(1),
items: None,
min_items: None,
unique_items: None,
min_length: None,
required: None,
});
let schema = Schema {
reference: None,
title: Some("User".to_owned()),
description: Some("User model".to_owned()),
all_of: None,
kind: Some(SchemaType::Object),
format: None,
properties: Some(properties),
minimum: None,
maximum: None,
items: None,
min_items: None,
max_items: None,
unique_items: None,
min_length: None,
max_length: None,
required: Some(vec!["id".to_owned()]),
discriminator: None,
xml: None,
external_docs: None,
example: None,
};Fields§
§reference: Option<String>Reference to another schema definition. When present, most other fields are ignored.
title: Option<String>A title for the schema.
description: Option<String>A description of the schema. CommonMark syntax may be used.
all_of: Option<Vec<Box<Schema>>>Composition of schemas using allOf (all schemas must match).
kind: Option<SchemaType>The data type of the schema.
format: Option<String>Additional format information (e.g., “email”, “date-time”, “uuid”).
properties: Option<BTreeMap<String, SchemaProperty>>Properties of an object schema. Maps property names to their schemas.
minimum: Option<u64>Minimum value for numeric types.
maximum: Option<u64>Maximum value for numeric types.
items: Option<Box<Schema>>Schema for items in an array.
min_items: Option<u64>Minimum number of items in an array.
max_items: Option<u64>Maximum number of items in an array.
unique_items: Option<bool>Whether array items must be unique.
min_length: Option<u64>Minimum length for string types.
max_length: Option<u64>Maximum length for string types.
required: Option<Vec<String>>List of required property names for object types.
discriminator: Option<Discriminator>Discriminator for polymorphism support.
xml: Option<XML>XML metadata for XML serialization.
external_docs: Option<ExternalDocs>Additional external documentation for this schema.
example: Option<Value>Example value for this schema.