jsonschema - esquema - ¿Cómo especificar una propiedad como nula o como referencia?
json schema reference another schema (2)
Tengo un documento json en el que una parte puede ser nula o un subobjeto, como este:
[{
"owner":null
},
{
"owner":{
"id":1
}
}]
La pregunta es si es posible modelar esto en json schema draft v4 usando ref?
Lo que me gustaría es algo como esto
{
"type":"object",
"properties":{
"owner":{
"type":["null", "object"],
"$ref":"#/definitions/id"
}
},
"definitions":{
"id":{
"type":"object",
"properties":{
"id":{
"type":"number"
}
}
}
}
}
Lo que has publicado debería funcionar, si eliminas el "type":"object"
de la definición.
Sin embargo, una forma más clara y explícita de especificar alternativas es usar oneOf
. Puede mantener intacta su definición de "id"
, y simplemente usar:
"owner":{
"oneOf": [
{"type": "null"},
{"$ref":"#/definitions/id"}
]
}
nullable
campo nullable
será compatible con OpenApi (aka Swagger) Specification v3.0.0
Así que con esta nueva especificación su definición se vería como:
"properties":{
"owner":{
"nullable": true,
...
}
},