OpenAPI: Use allOf for complex types #1372
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.
In OAS 3.0, a
$ref
element cannot be combined with other directives, such asnullable
anddescription
. The workaround is to wrap such elements in a single-elementallOf
array. For details, see OAI/OpenAPI-Specification#1514 and OAI/OpenAPI-Specification#1368. This limitation no longer applies in OAS 3.1, but there is no .NET implementation for that yet. Swashbuckle.AspNetCore is waiting for Microsoft to implement that in their object models (see domaindrivendev/Swashbuckle.AspNetCore#2349).This PR introduces the use of
allOf
, which simplifies handling nullable references (it no longer emits thenull-value
component schema). All credits go to @maurei, I just rebased his work on the latest changes.Additionally, this PR lifts the limitations on documenting relationships and enum-typed attributes.
QUALITY CHECKLIST