我不完全清楚你想要完成的區別。真的,這聽起來像文件;也許在每個oneOf
子模板的description
中詳細說明。
您可以在頂層(children
的同級)添加一個額外的布爾型字段,以指示是否返回詳細響應併爲該字段提供默認值。下一步是將布爾值與數組項的類型耦合,我使用oneOf
來完成。
我建議沿着線的東西:
{
"children": {
"type": "array",
"items": {
"oneOf": [
{
"type": "string",
"description": "Identifier of child",
"pattern": "^([A-Z0-9]-?){4}$"
},
{
"type": "object",
"description": "Contains details about the child",
"properties": {
"age": {
"type": "number"
}
}
}
]
}
},
"detailed": {
"type": "boolean",
"description": "If true, children array contains extra details.",
"default": false
},
"oneOf": [
{
"detailed": {
"enum": [
true
]
},
"children": {
"type": "array",
"items": {
"type": "object"
}
}
},
{
"detailed": {
"enum": [
false
]
},
"children": {
"type": "array",
"items": {
"type": "string"
}
}
}
]
}
第二oneOf
地方響應對象上的進一步的要求,當"detailed": true
的「孩子們」的項目的數組必須是「對象」類型。這細化了描述「children」數組中對象模式的第一個oneOf
限制。
使用新屬性擴展oneOf模型並將其設置在服務器端? –
我不明白?我引用http://json-schema.org/ –