Require discriminator instance to be an object #206
Merged
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.
Previously, all non-hash instances were valid when using
discriminator
, which I think is incorrect and confusing. There are a couple options:discriminator
allOf
/anyOf
/oneOf
processing for non-object instancesI went with option 1, because it seems safer and I don't know if it makes sense to ever allow non-object instances.
discriminator
depends onpropertyName
, which itself requires hash instances. Allowingnull
is still possible by wrapping thediscriminator
schema in anotheroneOf
(like the test example:nullable_union_schema
).The OpenAPI specification doesn't say anything about non-object instances directly, but it does say:
Which I think can be interpreted as requiring the response payload to be an object.
Fixes: #204
Related: be45f04