swagger openapi

¿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 usar type: string . Dicho esto, algunas herramientas admiten x-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.