Aller au contenu
Tout en local

JSON vers GraphQL SDL

Convertissez un document JSON en types GraphQL écrits en Schema Definition Language.

Entrée
Sortie

JSON vers GraphQL SDL

Collez un objet JSON ou un array d'objets et cet outil dérivera les types GraphQL écrits en Schema Definition Language. C'est un moyen rapide d'amorcer un schéma à partir d'une vraie réponse d'API, d'une export de base de données ou d'un exemple de payload, au lieu de taper chaque champ et type à la main.

Les scalaires sont déduits des valeurs JSON : les chaînes deviennent String, les entiers deviennent Int, les décimales deviennent Float, et vrai/faux deviennent Boolean. Un champ nommé "id" est typé en ID s'il contient une chaîne ou un entier, correspondant à la façon dont la plupart des APIs GraphQL identifient les enregistrements. Les champs dont la valeur d'exemple est null sont marqués comme optionnels ; tous les autres champs obtiennent le marqueur requis ("!"). Les objets imbriqués deviennent leurs propres types nommés, référencés du parent, et les objets imbriqués structurellement identiques sont fusionnés en un seul type au lieu d'être dupliqués. Les arrays deviennent des types de liste avec le type d'élément déduit de leur contenu.

Deux autres options façonnent le résultat : activer l'option scalaire personnalisé reconnaît les chaînes de date et d'heure ISO et déclare "scalar Date" ou "scalar DateTime" à la place de les traiter comme du simple String, et le choix "Générer comme" bascule entre "type" (pour les requêtes) et "input" (pour les arguments de mutation). Activer "Inclure le type Query" ajoute un petit type Query avec un champ renvoyant le type racine, afin que le schéma soit prêt à coller dans un serveur ou un outil schema-first tel quel.

Tout s'exécute localement dans votre navigateur — le JSON que vous collez n'est jamais chargé nulle part. Copiez le SDL généré, téléchargez-le en tant que fichier .txt, ou envoyez-le directement dans l'entrée d'un autre outil pour continuer à travailler dessus.

FAQ

Comment décide-t-il si un champ est obligatoire ?
Un champ est marqué avec "!" (obligatoire) à moins que sa valeur d'exemple dans le JSON soit null, auquel cas il est laissé optionnel.
Comment sont gérés les objets imbriqués et les listes ?
Chaque objet imbriqué devient son propre type GraphQL nommé référencé du parent. Les formes imbriquées structurellement identiques sont réutilisées comme un seul type. Les arrays deviennent des types de liste, avec le type d'élément pris du contenu du array.
Que fait « Détecter ID depuis le champ 'id' » ?
Lorsqu'il est activé, tout champ littéralement nommé "id" qui contient une chaîne ou un entier est typé en tant que scalaire ID intégré de GraphQL au lieu de String ou Int.
Puis-je générer les types d'entrée GraphQL à la place des types d'objet ?
Oui. Passez "Générer comme" à "input" pour obtenir les blocs input Name { … }, utiles pour les arguments de mutation. Le wrapper Query n'est ajouté que pour la sortie "type", car un champ Query ne peut pas renvoyer un type input.
Mon JSON est-il chargé quelque part ?
Non. La conversion s'exécute entièrement dans votre navigateur — votre JSON ne quitte jamais votre appareil.