Valider une spec OpenAPI 3 / Swagger en ligne avant la CI

Valider une spec OpenAPI 3 / Swagger en ligne avant la CI

Erreurs de schéma, $ref cassées, responses manquantes : validez votre contrat API OpenAPI 3.0–3.2 dans le navigateur.

05.08.2026
7 min de lecture
Partager cet article:
openapiswaggerAPIValidationRESTTutoriel

Valider une spécification OpenAPI avant la fusion

Une spécification OpenAPI invalide bloque les générateurs de clients, fait échouer les imports de passerelle d'API et retarde les revues de contrat. Pourtant, les erreurs les plus courantes passent souvent inaperçues dans un diff YAML de plusieurs centaines de lignes. C'est le cas d'un champ info incomplet, d'une référence $ref interne cassée ou d'une version openapi non prise en charge. Le validateur OpenAPI en ligne de FastMinify vérifie la conformité au schéma OpenAPI 3.0, 3.1 et 3.2 via @scalar/openapi-parser, entièrement dans le navigateur. Collez du JSON ou du YAML : le verdict, les chemins d'erreur et les statistiques de la spécification s'affichent sans aucun envoi à un serveur. Complétez avec le formateur OpenAPI pour une relecture lisible, puis explorez le hub outils API. Si la syntaxe JSON brute est douteuse, commencez par le validateur JSON. Pour optimiser les payloads une fois le contrat validé, voir le guide d'optimisation des APIs REST.

Détection des erreurs de schéma OpenAPI 3.0 à 3.2 avant la CI ou l'import dans la passerelle
JSON et YAML acceptés, avec détection automatique et repli sur le YAML si l'analyse du JSON échoue
Références internes #/… vérifiées, chemins d'erreur Scalar affichés
100 % local : la spécification ne quitte pas le navigateur, ce qui convient aux contrats internes
Enchaînement rapide : valider → formater → linter → commit

Limites honnêtes et bonnes pratiques

Ce que validate-openapi ne fait pas

Un verdict « valide » signifie une conformité au schéma OpenAPI, pas que votre API répond correctement en production.

Aucune récupération des $ref externes ni des URL distantes
Pas de regroupement automatique de plusieurs fichiers : une spécification d'un seul fichier par collage
Pas de validation de Swagger 2.0
Pas de test de sécurité (authentification réelle, scopes effectifs)
Limite d'entrée de 512 KiB : les spécifications énormes demandent des outils locaux ou la CI
Références internes vs externes

Scalar vérifie les références #/. Les références HTTP(S) vers d'autres fichiers ne sont jamais résolues : la spécification doit être autonome pour une validation fiable dans le navigateur.

Préférez un fichier unique, ou regroupez en amont avec votre outil de CI
Une $ref externe non résolue peut passer l'analyse et échouer ailleurs
Vérifiez à la main les imports entre dépôts après la validation locale
json-schema-to-openapi et openapi-to-json-schema sur le hub pour passer d'un schéma à l'autre
Pour valider des données contre un schéma, utilisez json-schema-validator et voir aussi notre guide JSON Schema
Intégration à la CI et compléments

L'outil du navigateur accélère le retour avant le commit, et la CI reste la source de vérité pour les équipes.

Collez la spécification modifiée avant git push : c'est plus rapide qu'un pipeline complet
En CI : Spectral, openapi-cli ou Redocly selon votre pile technique
Combinez avec le guide CI/CD pour l'automatisation globale
Documentez la version OpenAPI visée (3.0 ou 3.1) dans le README du dépôt
Relisez les changements cassants du schéma avec json-diff sur les exports JSON

Ce que l'outil vérifie et refuse dans OpenAPI 3 et Swagger 2

OpenAPI 3.x, le contrat moderne

OpenAPI 3.x décrit vos endpoints REST, les schémas de requête et de réponse, la sécurité et les composants réutilisables. FastMinify valide la conformité au méta-schéma OpenAPI, pas le comportement de votre API à l'exécution.

Versions prises en charge : 3.0.x, 3.1.x, 3.2.x
Champs obligatoires habituels : openapi, info.title, info.version, paths
Composants schemas, responses et parameters, avec les références internes résolues
Scalar fait une validation structurelle, pas un test d'appels HTTP réels
YAML ou JSON : même sémantique après l'analyse
Swagger 2.0 explicitement refusé

Un document dont la clé racine est swagger: "2.0" n'est pas pris en charge par cet outil. Le message d'erreur est explicite : ne tentez pas de le valider ici.

Swagger 2 utilise swagger ; OpenAPI 3 utilise openapi
Pour migrer de Swagger vers OpenAPI 3, utilisez des convertisseurs dédiés en amont
FastMinify ne prétend pas valider Swagger 2, ce qui évite les faux positifs
Après la migration, validez de nouveau avec validate-openapi
Les spécifications hybrides ou mal formées échouent à l'analyse avant la validation
Erreurs fréquentes dans les spécifications réelles

Au-delà de la syntaxe, ces écarts structurels font échouer la CI ou les générateurs de SDK.

Une $ref interne qui pointe vers un composant inexistant provoque un échec de validation
Une réponse HTTP sans description enfreint une règle OpenAPI
Un operationId dupliqué ou absent bloque certains générateurs
Schéma type incompatible avec des nullable / oneOf mal imbriqués
Un mélange de drafts JSON Schema dans les components provoque, entre 3.1 et 3.0, des erreurs de conformité
Valider, linter et formater sont trois tâches distinctes

Le hub API propose trois intentions distinctes : ne les confondez pas pendant la relecture d'une PR.

Validate vérifie la conformité au schéma OpenAPI (Scalar) et renvoie un verdict valide ou invalide
Format s'occupe de l'indentation et de la lisibilité, et il ne corrige pas les erreurs sémantiques
Lint applique des règles de type Spectral (operationId, tags…), et notre guide lint et format OpenAPI les détaille
Ordre conseillé : validate → format → lint avant la fusion
Un validateur JSON seul ne suffit pas : une spécification JSON syntaxiquement valide peut être un OpenAPI invalide

Valider une spécification OpenAPI pas à pas

Utiliser le validateur OpenAPI

Le validateur OpenAPI analyse l'entrée (JSON ou YAML, 512 KiB au plus), puis appelle validate() de Scalar. Le résultat donne un statut, la première erreur avec sa ligne si elle est connue et la liste des problèmes avec leurs chemins JSON Pointer.

Collez une spécification d'un seul fichier : les URL externes ne sont jamais récupérées
Validation en direct dans l'éditeur Monaco après un court debounce
Panneau de résultats : verdict, problèmes signalés par Scalar, statistiques de chemins et d'opérations
Les références https://… ne sont jamais téléchargées, par limitation volontaire
Swagger 2.0 donne un message d'erreur clair, sans validation partielle
Formater avant ou après validation

Le formateur OpenAPI réécrit le JSON ou le YAML avec une indentation de 2 ou 4 espaces et un tri des clés en option. Il aide la relecture humaine et ne remplace pas la validation.

Un format lisible pour les PR, avec une indentation cohérente avec l'équipe
Tri des clés en option pour des diffs stables
Une entrée OpenAPI invalide peut quand même être formatée si l'analyse réussit
Enchaînez format → validate pour repérer les erreurs sur une spécification indentée
YAML volumineux : vérifiez la limite 512 KiB avant collage
Une spécification cassée avant un import dans API Gateway

Vous exportez une spécification depuis un outil de design et l'import dans AWS API Gateway ou Kong échoue sans explication.

1

Collez-la dans validate-openapi

Ouvrez validate-openapi. Si l'analyse échoue, corrigez d'abord la syntaxe JSON ou YAML : le validateur JSON peut aider sur les parties en JSON.

2

Correction des $ref internes

Les problèmes de Scalar indiquent le chemin (par exemple #/components/schemas/User manquant). Corrigez la faute de frappe ou ajoutez le composant référencé.

3

Formatez et faites le commit

Passez la spécification validée dans format-openapi, téléchargez-la et ouvrez la PR. Importez-la de nouveau dans la passerelle.

Une revue de contrat avant la génération d'un SDK

L'équipe mobile génère un client à partir de la spécification, et une erreur de schéma bloque tout le pipeline.

1

Validez la version fusionnée

Collez la spécification de la branche main dans validate-openapi. Un verdict invalide signifie qu'il faut bloquer le tag de version.

2

Vérifiez info et paths

Les champs info doivent être complets et chaque opération doit avoir des responses avec description. Les statistiques du panneau de résultats aident à repérer des chemins vides.

3

Minifiez les exemples JSON

Les exemples embarqués volumineux ralentissent les relectures : utilisez le minificateur JSON sur les payloads d'exemple une fois la spécification validée.

Conclusion

Valider une spécification OpenAPI avant la CI évite des heures de débogage sur des imports de passerelle ou des générateurs de SDK silencieux. Collez, validez, corrigez les chemins signalés par Scalar, le tout en local. Formatez pour la relecture, puis explorez le hub API pour le lint, la conversion JSON Schema et la validation GraphQL.

Validez votre spécification OpenAPI maintenant

Validez avant chaque PR touchant une spec OpenAPI
N'utilisez pas cet outil pour Swagger 2.0, migrez d'abord
Regroupez en amont les $ref externes pour une validation fiable dans le navigateur
Enchaînez validate → format → lint pour une revue complète
Consultez le guide REST JSON pour optimiser les payloads une fois le contrat sain
Partager cet article
Partager cet article: