J'ai un fichier de schéma JSON dans lequel l'une des propriétés est définie comme étant string
ou null
:
"type":["string", "null"]
Une fois converti en YAML (pour une utilisation avec OpenAPI/Swagger), il devient:
type:
- 'null'
- string
mais l'éditeur Swagger affiche une erreur:
La clé "type" du schéma doit être une chaîne
Quelle est la bonne façon de définir une propriété nullable dans OpenAPI?
type
sous forme de tableau de types
type:
- string
- 'null'
est NON valide dans OpenAPI/Swagger (même s’il est valide dans le schéma JSON). Le mot clé type
d'OpenAPI requiert un seul type et ne peut pas être un tableau de types.
La prise en charge de null
dépend de la version d'OpenAPI que vous utilisez:
Dans OpenAPI 3.0 , utilisez le mot-clé nullable
pour définir les types nullables:
type: string
nullable: true # <----
OpenAPI 2.0 ne supporte pas null
comme type de données. Par conséquent, si vous utilisez 2.0, vous n’avez pas de chance. Vous ne pouvez utiliser que type: string
. Cela dit, certains outils prennent en charge x-nullable: true
en tant qu'extension de fournisseur, même si les valeurs NULL ne font pas partie de la spécification OpenAPI 2.0.