Update docs and changelog

This commit is contained in:
Graham Esau 2020-05-16 12:21:09 +01:00
parent bfb3f06253
commit e7cae04beb
12 changed files with 25 additions and 6 deletions

View file

@ -1,4 +1,8 @@
# Changelog # Changelog
## In-dev - version TBC
### Added:
- If a struct is annotated with `#[serde(deny_unknown_fields)]`, generated schema will have `additionalProperties` set to `false` (https://github.com/GREsau/schemars/pull/30)
- Set `type` property to `string` on simple enums (https://github.com/GREsau/schemars/issues/28)
## [0.7.3] - 2020-05-15 ## [0.7.3] - 2020-05-15
### Added: ### Added:

View file

@ -117,7 +117,7 @@ use schemars::{schema_for, JsonSchema};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
#[derive(Deserialize, Serialize, JsonSchema)] #[derive(Deserialize, Serialize, JsonSchema)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase", deny_unknown_fields)]
pub struct MyStruct { pub struct MyStruct {
#[serde(rename = "myNumber")] #[serde(rename = "myNumber")]
pub my_int: i32, pub my_int: i32,
@ -171,6 +171,7 @@ fn main() {
"format": "int32" "format": "int32"
} }
}, },
"additionalProperties": false,
"definitions": { "definitions": {
"MyEnum": { "MyEnum": {
"anyOf": [ "anyOf": [

View file

@ -124,6 +124,15 @@ If the given type has any required generic type parameters, then they must all b
Serde docs: [variant](https://serde.rs/variant-attrs.html#with) / [field](https://serde.rs/field-attrs.html#with) Serde docs: [variant](https://serde.rs/variant-attrs.html#with) / [field](https://serde.rs/field-attrs.html#with)
<h3 id="deny_unknown_fields">
`#[serde(deny_unknown_fields)]` / `#[schemars(deny_unknown_fields)]`
</h3>
Setting this on a container will set the `additionalProperties` keyword on generated schemas to `false` to show that any extra properties are explicitly disallowed.
Serde docs: [container](https://serde.rs/container-attrs.html#deny_unknown_fields)
</div> </div>
## Other Attributes ## Other Attributes

View file

@ -2,7 +2,7 @@ use schemars::{schema_for, JsonSchema};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
#[derive(Deserialize, Serialize, JsonSchema)] #[derive(Deserialize, Serialize, JsonSchema)]
#[schemars(rename_all = "camelCase")] #[schemars(rename_all = "camelCase", deny_unknown_fields)]
pub struct MyStruct { pub struct MyStruct {
#[serde(rename = "thisIsOverridden")] #[serde(rename = "thisIsOverridden")]
#[schemars(rename = "myNumber")] #[schemars(rename = "myNumber")]

View file

@ -26,6 +26,7 @@
"format": "int32" "format": "int32"
} }
}, },
"additionalProperties": false,
"definitions": { "definitions": {
"MyEnum": { "MyEnum": {
"anyOf": [ "anyOf": [

View file

@ -2,7 +2,7 @@ use schemars::{schema_for, JsonSchema};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
#[derive(Deserialize, Serialize, JsonSchema)] #[derive(Deserialize, Serialize, JsonSchema)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase", deny_unknown_fields)]
pub struct MyStruct { pub struct MyStruct {
#[serde(rename = "myNumber")] #[serde(rename = "myNumber")]
pub my_int: i32, pub my_int: i32,

View file

@ -26,6 +26,7 @@
"format": "int32" "format": "int32"
} }
}, },
"additionalProperties": false,
"definitions": { "definitions": {
"MyEnum": { "MyEnum": {
"anyOf": [ "anyOf": [

View file

@ -2,7 +2,7 @@ use schemars::{schema_for, JsonSchema};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
#[derive(Deserialize, Serialize, JsonSchema)] #[derive(Deserialize, Serialize, JsonSchema)]
#[schemars(rename_all = "camelCase")] #[schemars(rename_all = "camelCase", deny_unknown_fields)]
pub struct MyStruct { pub struct MyStruct {
#[serde(rename = "thisIsOverridden")] #[serde(rename = "thisIsOverridden")]
#[schemars(rename = "myNumber")] #[schemars(rename = "myNumber")]

View file

@ -26,6 +26,7 @@
"format": "int32" "format": "int32"
} }
}, },
"additionalProperties": false,
"definitions": { "definitions": {
"MyEnum": { "MyEnum": {
"anyOf": [ "anyOf": [

View file

@ -2,7 +2,7 @@ use schemars::{schema_for, JsonSchema};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
#[derive(Deserialize, Serialize, JsonSchema)] #[derive(Deserialize, Serialize, JsonSchema)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase", deny_unknown_fields)]
pub struct MyStruct { pub struct MyStruct {
#[serde(rename = "myNumber")] #[serde(rename = "myNumber")]
pub my_int: i32, pub my_int: i32,

View file

@ -26,6 +26,7 @@
"format": "int32" "format": "int32"
} }
}, },
"additionalProperties": false,
"definitions": { "definitions": {
"MyEnum": { "MyEnum": {
"anyOf": [ "anyOf": [

View file

@ -113,7 +113,7 @@ use serde::{Deserialize, Serialize};
#[derive(Deserialize, Serialize, JsonSchema)] #[derive(Deserialize, Serialize, JsonSchema)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct MyStruct { pub struct MyStruct {
#[serde(rename = "myNumber")] #[serde(rename = "myNumber", deny_unknown_fields)]
pub my_int: i32, pub my_int: i32,
pub my_bool: bool, pub my_bool: bool,
#[serde(default)] #[serde(default)]
@ -165,6 +165,7 @@ fn main() {
"format": "int32" "format": "int32"
} }
}, },
"additionalProperties": false,
"definitions": { "definitions": {
"MyEnum": { "MyEnum": {
"anyOf": [ "anyOf": [