구별로 무엇을 달성하려고하는지 완전히 명확하지 않습니다. 실제로 그것은 문서처럼 들립니다. 각 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/을 참조하고있다. –