Définir la version de référence
L’ancien SDL correspond au contrat déjà publié. Inverser les côtés transforme une suppression en ajout et relance le classement ; vérifiez ce sens avant d’interpréter le nombre de ruptures.
Documents GraphQL
Placez le SDL complet en production à gauche et la version proposée à droite. Le sens de comparaison détermine le risque.
Saisissez deux schémas SDL complets ou chargez l’exemple.
Les deux SDL sont analysés dans ce navigateur. Aucune requête API, aucun téléversement, historique enregistré ou contenu placé dans l’URL.
GraphQL.js classe les ruptures et les risques potentiels. Les autres écarts structurels et changements de dépréciation sont affichés sans être déclarés sûrs.
Chaque SDL est limité à 100 000 caractères, 20 000 tokens et 100 niveaux d’imbrication. La comparaison s’arrête après 8 secondes.
Saisissez deux schémas SDL complets ou chargez l’exemple.
Une comparaison de schémas GraphQL aide à relire une proposition d’API quand les définitions ont été réordonnées et que le diff texte devient bruyant. Les clients dépendent des types, champs et arguments, pas de l’indentation du fichier.
Le rapport distingue les changements structurels des règles de compatibilité. Un champ ajouté ou marqué @deprecated reste dans la liste même si GraphQL.js ne le classe ni comme rupture ni comme danger : absence d’alerte ne signifie pas sûreté démontrée.
Retrouver les changements du contrat sans confondre mise en forme et rupture.
La comparaison de schémas GraphQL construit les deux schémas depuis le SDL, puis associe types, champs et arguments par chemin. Un simple réordonnancement disparaît du rapport ; la suppression réelle d’un champ apparaît avec son ancien type.
Une valeur enum ajoutée peut surprendre un client qui énumère tous les cas. Ajouter @deprecated n’enlève pas le champ. La comparaison de schémas GraphQL affiche séparément ces faits et laisse les nouveautés non classées à examiner.
L’ancien SDL correspond au contrat déjà publié. Inverser les côtés transforme une suppression en ajout et relance le classement ; vérifiez ce sens avant d’interpréter le nombre de ruptures.
La comparaison automatique attend environ 350 ms après une modification. Pour coller un gros SDL, désactivez-la et lancez Comparer ou Ctrl/Cmd+Entrée une fois les deux versions prêtes.
Toute modification rend le rapport précédent périmé et bloque copie et téléchargement. Corrigez l’erreur indiquée sur le bon côté, avec sa ligne et sa colonne si disponibles, puis relancez. L’export contient toutes les lignes même si l’écran en montre 100.
Types, champs, arguments, entrées, enums, unions et directives sont comparés comme éléments GraphQL. La position des définitions et les espaces ne deviennent pas de faux écarts.
GraphQL.js fournit les catégories rupture et risque potentiel, avec un code de règle visible. Les autres modifications restent listées sans certificat implicite de compatibilité. Ces changements cassants sont distincts des risques simplement potentiels.
Une raison @deprecated ajoutée ou modifiée fait l’objet d’une ligne dédiée. Supprimer ensuite le champ déprécié reste une rupture selon les règles par défaut.
Autoriser null sur un argument de mutation auparavant obligatoire élargit en général les entrées admises. GraphQL.js ne classe pas ce sens comme rupture ; rendre l’argument obligatoire peut au contraire refuser d’anciens appels.
L’ajout d’une valeur enum est classé comme risque potentiel. Les requêtes peuvent rester valides, mais un client qui suppose connaître toutes les valeurs risque de mal gérer le nouveau cas.
Les deux SDL ne portent aucune intention de renommage. La comparaison de schémas GraphQL montre une suppression et un ajout distincts ; une transition sans interruption exige un choix dans l’API.
Une mutation est un champ du type racine Mutation : elle peut recevoir @deprecated. Ce marqueur laisse fonctionner les anciennes opérations, alors que la suppression ultérieure reste une rupture.
Passer un champ retourné de non nul à nullable modifie les hypothèses des clients générés. GraphQL.js le signale comme rupture ; dans l’autre sens, vérifiez aussi que les résolveurs respectent la nouvelle promesse.
Un résultat inattendu avec votre document ?
Rapprochez le SDL publié et le SDL proposé, lisez chaque catégorie puis exportez le rapport actuel.