Handle optional fields properly by not adding it to 'required' elements #3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In json-schema, when a field is optional, it does not need to be added to the "required" field. Unfortunately the Avro -> Json-Schema converter currently makes every field required in the resulting schema. This means that in the JSON every field must be present and either set to null or populated. In reality we should mark JSON with optional fields removed as valid as well.
Demo Avro Schema
Converted JSON schema with required optional fields that nullable.
JSON that is correctly validated with this schema
JSON that is incorrectly failed with this schema
The change I am proposing will make the schema only require name: