fix(schemar): use self-defined settings (#180)
Ignores fields that are not defined in the spec file. Signed-off-by: jokemanfire <hu.dingyang@zte.com.cn>
This commit is contained in:
parent
614d974d8d
commit
01eedb7770
1 changed files with 7 additions and 1 deletions
|
|
@ -14,7 +14,13 @@ use crate::{
|
||||||
};
|
};
|
||||||
/// A shortcut for generating a JSON schema for a type.
|
/// A shortcut for generating a JSON schema for a type.
|
||||||
pub fn schema_for_type<T: JsonSchema>() -> JsonObject {
|
pub fn schema_for_type<T: JsonSchema>() -> JsonObject {
|
||||||
let settings = schemars::r#gen::SchemaSettings::openapi3();
|
let mut settings = schemars::r#gen::SchemaSettings::default();
|
||||||
|
settings.option_nullable = true;
|
||||||
|
settings.option_add_null_type = false;
|
||||||
|
settings.definitions_path = "#/components/schemas/".to_owned();
|
||||||
|
settings.meta_schema = None;
|
||||||
|
settings.visitors = Vec::default();
|
||||||
|
settings.inline_subschemas = false;
|
||||||
let generator = settings.into_generator();
|
let generator = settings.into_generator();
|
||||||
let schema = generator.into_root_schema_for::<T>();
|
let schema = generator.into_root_schema_for::<T>();
|
||||||
let object = serde_json::to_value(schema).expect("failed to serialize schema");
|
let object = serde_json::to_value(schema).expect("failed to serialize schema");
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue