swagger-spec-compatibility
swagger-spec-compatibility copied to clipboard
Implement detection rules for adding / removing x-nullable attribute
Changing the nullability of an object or property might lead to backward incompatible specs.
For easier understanding we can use the following example
definitions:
model:
type: object
x-model: Model
properties:
prop:
type: string
with the above example we should consider {"prop": "a"}
or {}
as valid Model
and {"prop": null}
as invalid.
But adding x-model: true
into prop
property it makes {"prop": null}
a valid Model
.
This change is:
- backward compatible if the object is used in requests parameters, as old clients would continue to send
Model
instances - backward incompatible if the object is used in responses, as old clients might start receiving
null
values which were not supposed to receive
The objective of this issue is to track the implementation of two complementary rules
- add
x-nullable
into response models - removing
x-nullable
from request models
Internal reference: CORESERV-9265