Validateur OpenAPI JSON

Collez le contenu de votre openapi.json ou swagger.json et obtenez un contrôle structurel en quelques secondes. Le validateur confirme que le JSON est lisible, que le champ de version est présent, que info a un titre et une version, et que paths existe. Il signale ensuite les noms de chemins étranges et les clés d’opération inconnues.

Comment valider un fichier JSON OpenAPI

  1. 1

    Copiez le fichier

    Ouvrez votre `openapi.json` et copiez le document entier, de l'accolade d'ouverture à celle de fermeture.

  2. 2

    Collez-le dans la zone

    Collez-le dans le champ du document OpenAPI / Swagger. Inutile de supprimer les espaces ni de reformater.

  3. 3

    Lancez le contrôle

    Passez à l'étape des résultats pour lancer la validation.

  4. 4

    Corrigez et recommencez

    Modifiez le fichier pour chaque erreur, collez-le à nouveau et relancez jusqu'à ce que le rapport n'affiche plus d'erreur.

Erreurs JSON courantes qui font échouer le contrôle

Le JSON est plus strict que le YAML : la plupart des échecs sur un fichier modifié à la main viennent de la syntaxe, et non de la conception de l’API. Les causes habituelles sont une virgule en trop après la dernière propriété, des guillemets simples à la place des guillemets doubles, un commentaire (le JSON n’en accepte pas) ou une accolade de fermeture oubliée après un long objet paths. Un fichier cassé se termine généralement par le message « Impossible de lire comme JSON ou YAML », ou par des erreurs de champs manquants parce que rien d’exploitable n’a été lu.

Si vous n’obtenez qu’une erreur d’analyse, cherchez d’abord l’erreur de syntaxe. Les contrôles structurels s’exécutent une fois que le document est lu comme un objet.

Un exemple concret

Prenons ce petit document :

{
  "openapi": "3.0.3",
  "info": { "title": "Orders API" },
  "paths": {
    "orders": { "get": { "summary": "List orders" } }
  }
}

Il se lit correctement, et le champ openapi ainsi que l’objet paths sont présents. Le rapport afficherait tout de même :

Constat Type Raison
info.version est obligatoire. Erreur info a un titre mais pas de version
Le chemin ‘orders’ doit commencer par ‘/’. Avertissement La clé du chemin n’a pas de barre oblique initiale

Comme il y a une erreur, le document n’est pas considéré comme valide. Ajoutez "version": "1.0.0" dans info et renommez la clé en /orders. Une seconde exécution supprime les deux constats.

Ce que signifie une réussite, et ce qu’elle ne signifie pas

Un rapport propre signifie que l’ossature est correcte. Il ne suit pas les liens $ref, ne vérifie pas les schémas et ne confirme pas que chaque opération a des réponses. Considérez-le comme une vérification rapide avant de valider le fichier, puis lancez un linter complet pour les règles plus poussées.

Un flux de travail pratique pour les specs JSON

Gardez la spec sous contrôle de version et collez-la ici avant chaque commit qui touche paths. Comme le contrôle est rapide, il sert de vérification de cohérence après la fusion de modifications de plusieurs personnes, moment où les clés dupliquées ou une accolade mal placée sont les plus probables. Si votre JSON est généré par un script de build, collez la sortie générée et non le modèle, afin de tester ce que les lecteurs recevront réellement. Quand le rapport est propre, partagez le fichier ou transmettez-le à un générateur de documentation en étant plus sûr que la structure de premier niveau est saine.

Questions fréquentes

Non. Les espaces et l’indentation n’ont pas d’importance. Collez le fichier tel quel.

Le JSON standard n’autorise pas de virgule après le dernier élément d’un objet ou d’un tableau, donc le document ne peut pas être lu comme du JSON. Supprimez la virgule et relancez le contrôle.

Oui. Le contrôle de version accepte un champ openapi ou un champ swagger, donc les fichiers JSON Swagger 2.0 et OpenAPI 3.x passent par le même contrôle structurel.

Non. Les constats sont listés sous forme de messages, comme un champ manquant ou un nom de chemin, sans numéro de ligne. Recherchez dans votre fichier la clé citée dans le message.

Outils similaires

Outil disponible dans d’autres langues

Guides et cas d'usage