Réparateur GraphQL
Réparez du SDL GraphQL cassé — deux-points manquants, champs en double, accolades non équilibrées
Qu'est-ce que le Réparateur GraphQL ?
Si vous avez déjà collé un schéma GraphQL dans un outil pour vous voir renvoyer Syntax Error: Expected ":", found Name, ou si vous avez vu un diff de Schema Registry échouer parce que quelqu'un a oublié un deux-points après un nom de champ, vous connaissez la douleur. SDL ne pardonne pas — un seul signe de ponctuation manquant et le document entier refuse de se parser. Cet outil répare les casses classiques : deux-points manquants après les noms de champs, champs en double dans un type, accolades non équilibrées, virgules parasites, références à des scalaires mal saisies. Collez le schéma cassé dans l'éditeur de gauche, cliquez sur le bouton vert Réparer GraphQL !!, et un SDL propre apparaît à droite.
La réparation suit la spécification GraphQL d'octobre 2021 pour la grammaire des types, champs et arguments. La grammaire est petite mais stricte — voyez le guide officiel des Schemas et Types pour l'ensemble complet des règles. Le réparateur normalise la structure sans toucher à vos noms de champs, types ou directives, donc le diff face à votre registry reste propre. Si vous voulez vérifier la sortie, passez-la dans le validateur de la documentation de schéma Apollo Server ou faites-la passer par le parser de référence livré avec graphql-js.
Le schéma est envoyé à un petit service d'IA à qui on a dit de ne réparer que la syntaxe — jamais d'inventer, renommer ou supprimer vos champs. Le SDL réparé revient en texte brut, prêt à coller dans votre projet. Rien n'est journalisé de notre côté.
Comment utiliser le Réparateur GraphQL
Trois étapes. Chacune utilise les vrais boutons de cette page.
Collez du SDL cassé ou chargez l'exemple
Déposez votre SDL GraphQL cassé dans l'éditeur de gauche. Cliquez sur Exemple GraphQL pour charger un schéma Order/Customer délibérément cassé avec le genre de casses que cet outil traite — deux-points manquants, un champ en double, une accolade fermante manquante.
type Order {
id: ID!
placedAt DateTime!
total Money!
}Le réparateur n'invente pas de champs que vous n'avez pas écrits. Il répare seulement la syntaxe que la grammaire GraphQL rejette. Pour les conventions de nommage et de design au-dessus d'une syntaxe valide, le guide des bonnes pratiques GraphQL vaut le coup d'œil.
Cliquez sur Réparer GraphQL !!
Appuyez sur le bouton vert. Le réparateur lit le SDL cassé, identifie les erreurs structurelles et de ponctuation, puis réécrit le document. Un indicateur de chargement s'affiche pendant le traitement. Les deux éditeurs utilisent la coloration syntaxique SDL pour que vous puissiez comparer avant/après côte à côte.
Copiez le schéma nettoyé
Le panneau de droite affiche le SDL réparé. Les noms de champs, types, descriptions et directives ne changent pas — seules les erreurs de syntaxe sont corrigées. Copiez la sortie et collez-la dans votre fichier schema.graphql ou votre registry.
Quand vous l'utiliseriez vraiment
Nettoyer des schémas édités à la main
Vous avez édité un gros schema.graphql à la main et oublié un deux-points entre placedAt et DateTime! ? Le message d'erreur dit juste « Expected : » avec un numéro de ligne. Le réparateur remet le deux-points sans que vous ayez à chercher champ par champ.
Réparer du SDL généré par une IA
Vous avez demandé à un LLM de rédiger un schéma pour une nouvelle fonctionnalité, et il vous a renvoyé un champ en double, une virgule là où il fallait une accolade, et un { sans pendant. Mode d'échec classique. Collez-le, cliquez sur Réparer, récupérez un schéma parsable sans tout réécrire.
Récupérer des schémas depuis des logs
Vous avez extrait un fragment de SDL d'une ligne de log où il était entouré d'échappements ou avait perdu ses sauts de ligne ? Le réparateur normalise la structure pour que le schéma récupéré se reparse pour de bon.
Vérification avant Schema Registry
Avant de pousser un changement vers un registry fédéré, passez le SDL dans le réparateur pour attraper les fautes de ponctuation qui bloqueraient le diff. Ça vous évite un aller-retour avec le registry qui refuse l'upload.
Questions fréquentes
Quels types d'erreurs corrige-t-il ?
Les deux-points manquants entre un nom de champ et son type (la casse la plus courante), les champs en double dans un même type, les accolades fermantes manquantes ou en trop, les virgules parasites dans les input objects, et les crochets non appariés autour des list types. Il n'invente pas de champs, types ou arguments — il répare seulement la syntaxe que le parser rejette.
Modifie-t-il les noms de mes champs ou types ?
Non. Les noms de champs, scalaires, types, descriptions et directives passent tels quels. Le réparateur ne touche qu'à la syntaxe structurelle — les noms que vous avez écrits restent exactement comme vous les avez écrits.
Prend-il en charge les scalaires et directives personnalisés ?
Oui. scalar Money, scalar DateTime, directives @auth ou @deprecated personnalisées — tout est préservé. Le réparateur ne valide pas qu'un scalaire personnalisé est enregistré sur votre serveur, seulement que le SDL parse.
Et les subgraphs fédérés (Apollo Federation) ?
Les directives de fédération (@key, @external, @requires) passent telles quelles. Le réparateur est purement une couche de réparation syntaxique — il n'exécute pas la composition de fédération. Faites passer la sortie nettoyée par l'étape de composition de votre registry ensuite.
Mon schéma est-il envoyé à un serveur ?
Oui — la réparation tourne sur un petit service backend parce que le modèle de langage est hébergé là. Nous ne journalisons pas l'entrée et la réponse est renvoyée directement à votre navigateur. Il y a une limite de 64 Ko par requête.
Produit-il toujours un schéma parsable ?
Pour les casses courantes décrites plus haut, oui. Si l'entrée manque de tellement de structure que l'intention initiale est ambiguë (par exemple, le corps entier d'un type effacé), la sortie peut signaler une erreur plutôt que deviner. Dans ce cas, comblez le trou évident à la main et repassez le résultat.
Autres outils GraphQL
La réparation n'est qu'une partie d'un workflow GraphQL. Ces outils couvrent le reste :