158 votes

Comment définir une propriété qui peut être une chaîne ou null dans OpenAPI (Swagger)?

J'ai un fichier de schéma JSON où l'une des propriétés est définie comme 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?

284voto

Helen Points 13822

type comme un tableau de types

type:
  - string
  - 'null'

est PAS valide dans OpenAPI/Swagger (même si c'est valide en JSON Schema). OpenAPI de l' type mot-clé nécessite un type unique et ne peut pas être un tableau de types.

Soutien pour null dépend de la version de OpenAPI vous utilisez:

  • Dans OpenAPI 3.0, utilisez l' nullable mot-clé pour définir les types nullables:

    type: string
    nullable: true   # <----
    
  • OpenAPI 2.0 ne prend pas en charge null comme type de données, donc si vous utilisez 2.0, vous êtes hors de la chance. Vous ne pouvez utiliser qu' type: string. Cela dit, certains outils de soutien x-nullable: true comme un fournisseur extension, même si les valeurs null ne sont pas une partie de l'OpenAPI 2.0 de la Spécification.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X