如何在swagger中指定属性为空或引用?讨论了如何使用Jsonschema来指定属性为空或引用。
我正在寻找在swagger中实现相同的功能。
为了概括上述答案,在jsonschema中,可以像这样做:
{
"definitions": {
"Foo": {
# some complex object
}
},
"type": "object",
"properties": {
"foo": {
"oneOf": [
{"$ref": "#/definitions/Foo"},
{"type": "null"}
]
}
}
}
回答中的关键点是使用了oneOf
。
我问题的关键点:
我有一个复杂的对象,想要保持DRY,所以将其放在定义部分以便在整个swagger规范中重复使用:其他属性的值;响应对象等等。
在我的规范中,某些属性可以是对这种对象的引用,也可以是null。
在Swagger中如何指定这一点,因为Swagger不支持oneOf
或anyOf
?
注意:一些Swagger实现使用x-nullable
(或类似的东西)来指定属性值可以为null,但是,$ref
会用它引用的内容替换对象,因此任何使用x-nullable
的地方都会被忽略。
"payload": { "$ref": "#/components/schemas/MyClass" }
中添加"nullable": true
,使其变为"payload": { "nullable": true, "$ref": "#/components/schemas/MyClass" }
。有人知道如何使用Swashbuckle选项来实现这个吗? - Adam Diament