
GraphQL SDL : valider et formater un schéma en ligne
Erreurs de syntaxe SDL, review de schéma et formatage avant merge — complément au beautify GraphQL existant.
Pourquoi valider le SDL GraphQL avant de merger ?
Un schéma qui ne parse pas bloque la génération de clients, fait échouer le démarrage du serveur GraphQL et transforme la relecture en devinettes. Les causes habituelles — accolade manquante, type inconnu, racine Query oubliée — se cachent dans un diff SDL de 400 lignes. Le validateur SDL GraphQL FastMinify exécute buildSchema de GraphQL.js dans le navigateur : collez le document de schéma, obtenez un verdict valide/invalide avec ligne et colonne lorsque GraphQL.js les fournit. Le formatage reste sur Beautify GraphQL (Prettier). Il n'existe pas de slug format-graphql. Le reste du cluster est sur le hub outils API. Si vous maintenez aussi des contrats REST, enchaînez avec le guide de validation OpenAPI.
Limites honnêtes et habitudes qui tiennent en revue
Un verdict valide signifie que buildSchema de GraphQL.js a accepté le SDL collé. Ce n'est pas une preuve que l'API se comporte correctement en production.
.graphql distants, d'includes ou d'URL GitL'outil navigateur sert la boucle rapide avant git push. Les équipes lancent toujours GraphQL.js, graphql-eslint ou rover en CI comme gate de merge.
Query par défaut ou un schema { query: … } personnaliséLa plupart des incidents SDL sont des restes de rename et des racines manquantes, pas des fonctionnalités GraphQL exotiques.
SDL de schéma vs requêtes : deux documents, deux outils
Le Schema Definition Language (SDL) décrit types, champs et racines. C'est le contrat que vos resolvers doivent honorer — pas une requête exécutable. FastMinify valide ce contrat avec buildSchema de GraphQL.js, sans parler à un serveur en live.
Query, Mutation et Subscription lorsque ces types existent.graphql via URLUn document d'opération (query, mutation, subscription, fragment) n'est pas du SDL de schéma. Le coller dans le validateur fait échouer buildSchema. Formatez ces documents avec Beautify GraphQL.
buildSchema, pas d'exécution de requêtesGraphQL.js exige en général un type racine Query, sauf si votre définition schema nomme un autre type de query. Un document avec seulement type User { … } sans racine query échoue le plus souvent — c'est attendu, pas un bug FastMinify.
type Query { hello: String }schema { query: RootQuery } plus type RootQuery { … }Valider répond à « ce SDL de schéma est-il accepté par GraphQL.js ? ». Beautifier répond à « ce GraphQL est-il lisible ? ». L'indentation ne corrige jamais un type inconnu.
buildSchema — valide ou invalide, issues avec ligne/colonne si disponiblestabWidth 2 ou 4, tabulations, printWidth 80 / 100 / 120Valider puis formater : un workflow concret
Ouvrez le validateur GraphQL, collez un seul document de schéma (max 512 Kio UTF-8) et attendez le verdict (debounce). Le panneau affiche Valide ou Invalide, la première erreur avec ligne et colonne si connues, une action copier l'erreur, et les stats du schéma si le parse réussit.
Le beautifier GraphQL pretty-print schémas et opérations avec Prettier. Utile pour les diffs de review — il ne remplace pas validate. Options : 2 ou 4 espaces ou tabulations, plus la largeur d'impression. Tous les formateurs sont sur le hub outils beautify.
Un coéquipier a renommé Pet en Animal mais a laissé pet(id: ID!): Pet sur Query. La CI ou le serveur échoue, avec peu de contexte dans l'overlay GitHub.
Étape 1 : coller le schéma dans validate-graphql
Ouvrez validate-graphql. Un verdict invalide avec Unknown type "Pet" (et une ligne si disponible) pointe le champ périmé.
Étape 2 : corriger le nom de type ou restaurer le type
Renommez le type de retour du champ en Animal ou réajoutez type Pet. Recollez jusqu'à ce que le panneau affiche un schéma valide.
Étape 3 : beautifier et committer
Passez le SDL corrigé dans beautify-graphql, copiez ou téléchargez, mettez à jour la PR. Les reviewers lisent des types, pas un blob d'une ligne.
Un schéma généré ou d'allure minifiée arrive dans le dépôt. Les reviewers ne voient pas quels champs sont sur Query versus Mutation.
Étape 1 : beautifier d'abord si vous ne pouvez même pas le lire
Collez dans beautify-graphql. Prettier déroule sélections et corps de types. Cette étape ne prouve pas que le schéma est valide.
Étape 2 : valider le document formaté
Copiez le SDL indenté dans validate-graphql. Vérifiez que la racine Query existe et que chaque type nommé est défini.
Étape 3 : lire les tuiles de stats
Le nombre de types et de champs racines aide à repérer une Query vide ou des mutations perdues. Puis commitez le fichier formaté.
Conclusion
Validez le SDL GraphQL dans le navigateur avec buildSchema, puis formatez avec Prettier — en local, sans envoyer le schéma nulle part. Cette boucle attrape types inconnus et racines Query manquantes avant la CI ou une gateway. Elle ne remplace pas un serveur en live, l'introspection, ni le compose federation. Pour les contrats REST, restez sur le hub API ; pour des queries lisibles, restez sur Beautify GraphQL.
Articles connexes

Réduisez la facture OpenAI/Anthropic/Gemini : estimez input/output, activez batch et caching dans vos calculs — tarifs vérifiés, 100 % local.

RAG, agents multi-tours, system prompts : calculez le % de fenêtre utilisée et la marge restante avant d'envoyer à l'API.

Guide honnête : données tabulaires uniformes, workflow convertir → compter → tarifer → contexte ; pas un manifeste de remplacement JSON/YAML.