Trait schemars::JsonSchema
source · pub trait JsonSchema {
// Required methods
fn schema_name() -> String;
fn json_schema(gen: &mut SchemaGenerator) -> Schema;
// Provided method
fn is_referenceable() -> bool { ... }
}
Expand description
A type which can be described as a JSON Schema document.
This is implemented for many Rust primitive and standard library types.
This can also be automatically derived on most custom types with #[derive(JsonSchema)]
.
§Example
use schemars::{schema_for, JsonSchema};
#[derive(JsonSchema)]
struct MyStruct {
foo: i32,
}
let my_schema = schema_for!(MyStruct);
Required Methods§
sourcefn schema_name() -> String
fn schema_name() -> String
The name of the generated JSON Schema.
This is used as the title for root schemas, and the key within the root’s definitions
property for subschemas.
sourcefn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type.
If the returned schema depends on any referenceable schemas, then this method will
add them to the SchemaGenerator
’s schema definitions.
This should not return a $ref
schema.
Provided Methods§
sourcefn is_referenceable() -> bool
fn is_referenceable() -> bool
Whether JSON Schemas generated for this type should be re-used where possible using the $ref
keyword.
For trivial types (such as primitives), this should return false
. For more complex types, it should return true
.
For recursive types, this must return true
to prevent infinite cycles when generating schemas.
By default, this returns true
.