¿Cómo definir una propiedad que puede ser cadena o nula en OpenAPI(Swagger)?
(1)
Tengo un archivo de esquema JSON donde una de las propiedades se define como
string
o
null
:
"type":["string", "null"]
Cuando se convierte a YAML (para usar con OpenAPI / Swagger), se convierte en:
type:
- ''null''
- string
pero el Editor Swagger muestra un error:
La clave de "tipo" del esquema debe ser una cadena
¿Cuál es la forma correcta de definir una propiedad anulable en OpenAPI?
type
como una matriz de tipos
type:
- string
- ''null''
NO
es
válido
en OpenAPI / Swagger (aunque es válido en el esquema JSON).
La palabra clave de
type
OpenAPI requiere un solo tipo y no puede ser una matriz de tipos.
La compatibilidad con
null
depende de la versión de OpenAPI que utilice:
-
En OpenAPI 3.0 , use la palabra clave
nullable
para definir tipos anulables:type: string nullable: true # <----
-
OpenAPI 2.0 no admite
null
como tipo de datos, por lo que si usa 2.0, no tiene suerte. Solo puede usartype: string
. Dicho esto, algunas herramientas admitenx-nullable: true
como una extensión de proveedor, a pesar de que los valores nulos no son parte de la especificación OpenAPI 2.0.