次のように、パーツがnullまたはサブオブジェクトのいずれかになり得るjsonドキュメントがあります。
[{
"owner":null
},
{
"owner":{
"id":1
}
}]
問題は、refを使用してjsonスキーマドラフトv4でこれをモデル化できるかどうかです。
私が欲しいのはこのようなものです
{
"type":"object",
"properties":{
"owner":{
"type":["null", "object"],
"$ref":"#/definitions/id"
}
},
"definitions":{
"id":{
"type":"object",
"properties":{
"id":{
"type":"number"
}
}
}
}
}
定義から"type":"object"
を削除すると、投稿した内容が機能するはずです。
ただし、代替を指定するためのより明確で明確な方法は、oneOf
を使用することです。 "id"
の定義を変更せずにそのまま使用できます。
"owner":{
"oneOf": [
{"type": "null"},
{"$ref":"#/definitions/id"}
]
}
nullable
フィールドはOpenApi(別名Swagger)仕様でサポートされる v3.0.
したがって、この新しい仕様では、定義は次のようになります。
"properties":{
"owner":{
"nullable": true,
...
}
},