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:
openapi
swagger
API
validate
REST
Tutoriel

Pourquoi valider une spec OpenAPI avant de merger ?

Une spec OpenAPI invalide bloque les générateurs de clients, fait échouer les imports de passerelle API et retarde les revues de contrat. Pourtant, les erreurs les plus courantes — champ info incomplet, référence $ref interne cassée, version openapi non supportée — passent souvent inaperçues dans un diff YAML de plusieurs centaines de lignes. Le validateur OpenAPI en ligne de FastMinify vérifie la conformité 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 spec s'affichent sans envoi serveur. Complétez avec le formateur OpenAPI pour une revue 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 CI ou import gateway
JSON et YAML acceptés — auto-détection avec repli YAML si le JSON échoue
Références internes <code>#/…</code> vérifiées ; chemins d'erreur Scalar affichés
100 % local — la spec ne quitte pas le navigateur (idéal pour des contrats internes)
Workflow rapide : valider → formater → lint (article dédié à venir) → commit

Limites honnêtes et bonnes pratiques

Ce que validate-openapi ne fait pas

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

Pas de fetch des $ref externes ou URL distantes
Pas de bundle multi-fichiers automatique — une spec mono-fichier par collage
Pas de validation Swagger 2.0
Pas de test de sécurité (auth réelle, scopes effectifs)
Limite d'entrée 512 KiB — les specs énormes nécessitent un poste local ou CI
Références internes vs externes

Les #/ references sont vérifiées par Scalar. Les références HTTP(S) vers d'autres fichiers ne sont jamais résolues — la spec doit être autonome pour une validation fiable dans le navigateur.

Préférez un fichier unique ou bundlez en amont avec votre outil CI
Une $ref externe non résolue peut passer le parse mais faillir ailleurs
Vérifiez manuellement les imports cross-repo après validation locale
json-schema-to-openapi et openapi-to-json-schema sur le hub pour les pivots de schéma
Pour valider des données contre un schéma : json-schema-validator (article dédié à venir)
Intégration CI et compléments

L'outil navigateur accélère le feedback avant commit ; la CI reste la source de vérité pour les équipes.

Collez la spec modifiée avant git push — gain de temps vs pipeline complet
En CI : spectral, openapi-cli ou redocly selon votre stack
Combinez avec le guide CI/CD pour l'automatisation globale
Documentez la version OpenAPI cible (3.0 vs 3.1) dans le README du repo
Révisez les breaking changes de schéma avec json-diff sur les exports JSON

OpenAPI 3 vs Swagger 2 : ce que l'outil vérifie (et refuse)

OpenAPI 3.x : le contrat moderne

OpenAPI 3.x décrit vos endpoints REST, schémas de requête/réponse, sécurité et composants réutilisables. FastMinify valide la conformité au meta-schéma OpenAPI — pas le comportement runtime de votre API.

Versions supportées : 3.0.x, 3.1.x, 3.2.x
Champs obligatoires typiques : openapi, info.title, info.version, paths
Composants schemas, responses, parameters — références internes résolues
Validation structurelle Scalar — pas un test d'appels HTTP réels
YAML ou JSON : même sémantique après parse
Swagger 2.0 explicitement rejeté

Les documents avec une clé racine swagger: "2.0" ne sont pas supportés par cet outil. Le message d'erreur est explicite — ne tentez pas de les valider ici.

Swagger 2 utilise swagger ; OpenAPI 3 utilise openapi
Migration Swagger → OpenAPI 3 : utilisez des convertisseurs dédiés en amont
FastMinify ne prétend pas valider Swagger 2 — évitez les faux positifs
Après migration, re-validez avec validate-openapi
Les specs hybrides ou mal formées échouent au parse avant validation
Erreurs fréquentes dans les specs réelles

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

$ref interne pointant vers un composant inexistant — échec de validation
Réponse HTTP sans description — règle OpenAPI non respectée
operationId dupliqué ou absent — bloque certains générateurs
Schéma type incompatible avec nullable / oneOf mal imbriqués
Mélange JSON Schema draft dans components — erreurs de conformité 3.1 vs 3.0
Validate vs lint vs format

Trois intentions distinctes sur le hub API — ne les confondez pas lors d'une revue de PR.

Validate : conformité schéma OpenAPI (Scalar) — verdict valide/invalide
Format : indentation et lisibilité — ne corrige pas les erreurs sémantiques
Lint : règles style Spectral (operationId, tags…) — article dédié à venir
Ordre recommandé : validate → format → lint avant merge
Le validateur JSON seul ne suffit pas — une spec JSON syntaxiquement valide peut être OpenAPI invalide

Valider une spec OpenAPI : workflow pas à pas

Utiliser le validateur OpenAPI

Le validateur OpenAPI parse l'entrée (JSON ou YAML, max 512 KiB), puis appelle Scalar validate(). Résultat : statut, première erreur avec ligne si connue, liste des issues avec chemins JSON Pointer.

Collez une spec mono-fichier — pas de fetch d'URL externes
Validation debounced en direct dans l'éditeur Monaco
Panneau résultats : verdict, issues Scalar, stats paths/opérations
Références <code>https://…</code> jamais téléchargées — limitation volontaire
Swagger 2.0 → message d'erreur clair, pas de validation partielle
Formater avant ou après validation

Le formateur OpenAPI pretty-print en JSON ou YAML (indentation 2 ou 4 espaces, tri optionnel des clés). Utile pour une revue humaine — il ne remplace pas validate.

Format lisible pour PR — indentation cohérente avec l'équipe
Option tri des clés pour des diffs stables
Entrée invalide OpenAPI peut quand même être formatée si le parse réussit
Enchaîner format → validate pour repérer les erreurs sur spec indentée
YAML volumineux : vérifiez la limite 512 KiB avant collage
Scénario — Spec cassée avant import API Gateway

Vous exportez une spec depuis un outil de design et l'import AWS API Gateway / Kong échoue sans détail.

1

Étape 1 : Coller dans validate-openapi

Ouvrez validate-openapi. Si le parse échoue, corrigez d'abord la syntaxe JSON/YAML — le validateur JSON peut aider sur la partie JSON.

2

Étape 2 : Corriger les $ref internes

Les issues Scalar listent le chemin (#/components/schemas/User manquant, etc.). Corrigez la typo ou ajoutez le composant référencé.

3

Étape 3 : Formater et commit

Passez la spec validée dans format-openapi, téléchargez, ouvrez la PR. Réimportez dans la passerelle.

Scénario — Revue de contrat avant génération SDK

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

1

Étape 1 : Valider la version mergée

Collez la spec de la branche main dans validate-openapi. Verdict invalide → bloquez le tag de release.

2

Étape 2 : Vérifier info et paths

Champs info complets, chaque opération a des responses avec description. Les stats du panneau résultats aident à repérer des paths vides.

3

Étape 3 : Minifier les exemples JSON

Les exemples embarqués volumineux ralentissent les revues — utilisez le minificateur JSON sur les payloads d'exemple une fois la spec validée.

Conclusion

Valider une spec OpenAPI avant la CI évite des heures de debug sur des imports gateway ou des générateurs SDK silencieux. Collez, validez, corrigez les chemins Scalar — le tout localement. Formatez pour la revue, puis explorez le hub API pour lint, conversion JSON Schema et validation GraphQL.

Validez avant chaque PR touchant une spec OpenAPI
N'utilisez pas cet outil pour Swagger 2.0 — migrez d'abord
Bundlez les $ref externes en amont pour une validation navigateur fiable
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: