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
Changing the nullability of an object or property might lead to backward incompatible specs.
For easier understanding we can use the following example
with the above example we should consider
{"prop": "a"}
or{}
as validModel
and{"prop": null}
as invalid. But addingx-model: true
intoprop
property it makes{"prop": null}
a validModel
.This change is:
Model
instancesnull
values which were not supposed to receiveThe objective of this issue is to track the implementation of two complementary rules
x-nullable
into response modelsx-nullable
from request modelsInternal reference: CORESERV-9265