JSON vers schéma GraphQL (SDL)

Générez des types d'objet GraphQL SDL à partir de JSON : Int ou Float, marqueurs non nuls, types liste et types imbriqués déduits de votre exemple. Gratuit, dans le navigateur.

Les champs non nuls portent "!". Les entiers de plus de 32 bits deviennent Float ; les valeurs mixtes ou toujours null utilisent un scalaire JSON personnalisé.

S'exécute entièrement dans votre navigateur. Vos données ne sont jamais envoyées.

Outils Connexes

Voir Tout

Qu'est-ce que JSON vers GraphQL ?

Génère des déclarations type en langage de définition de schéma GraphQL (SDL) à partir d'un exemple JSON. Les valeurs obligatoires reçoivent le marqueur non nul !, les tableaux deviennent des types liste et les objets imbriqués deviennent des types d'objet distincts.

Comment utiliser JSON vers GraphQL

  1. Collez un exemple JSON dans Entrée JSON (ou cliquez sur Charger un exemple / Ouvrir un fichier).
  2. Définissez le Nom du type racine (Root par défaut).
  3. Copiez le code GraphQL généré ou utilisez Télécharger pour l'enregistrer dans un fichier.

Exemple

Entrée
{"id":1,"name":"A","tags":["x"]}
Sortie
type Root {
  id: Int!
  name: String!
  tags: [String!]!
}

Quand utiliser JSON vers GraphQL

Utilisez-le pour esquisser le schéma d'une API GraphQL qui enveloppe un service JSON/REST existant. Il n'émet que des types de sortie ; les types d'entrée, requêtes, mutations et résolveurs restent à écrire.

Comment fonctionne JSON vers GraphQL

L'exemple est parcouru récursivement et chaque position collecte les types rencontrés. Les tableaux d'objets sont fusionnés en un seul type : une clé absente de certains éléments devient facultative, une clé nulle quelque part devient nullable, des entiers mêlés à des décimaux deviennent un type à virgule flottante, et tout autre mélange de types se rabat sur un type dynamique. Les objets imbriqués deviennent leurs propres types nommés (PascalCase de la clé, clés de tableau mises au singulier : orders → Order), avec des suffixes numériques en cas de collision de noms. La sortie GraphQL associe les entiers à Int (ou Float quand une valeur dépasse 32 bits, car l'Int de GraphQL est sur 32 bits), les décimaux à Float, les chaînes à String et les booléens à Boolean. Les valeurs null ou absentes dans l'exemple sont nullables (sans !). Les valeurs mixtes ou uniquement nulles utilisent un scalaire personnalisé JSON, déclaré en tête lorsque c'est nécessaire. Les noms de champs qui ne sont pas des noms GraphQL valides sont convertis en camelCase.

Cas d'utilisation courants

  • Rédiger des types d'objet pour une passerelle GraphQL au-dessus d'une API REST
  • Documenter la forme de données JSON en SDL
  • Démarrer une conception d'API schema-first à partir de données d'exemple
  • Comparer des charges utiles REST avec un schéma GraphQL existant

Questions Fréquentes

Pourquoi un ID est-il typé Int et non ID ?

L'exemple ne montre qu'un nombre. Remplacez-le par ID! si le champ est un identifiant : l'outil ne peut pas en connaître la sémantique.

Qu'est-ce que le scalaire JSON ?

Un scalaire personnalisé utilisé pour des valeurs dont le type varie. Votre serveur doit le définir, par exemple avec graphql-scalars.

Pourquoi Float pour les grands entiers ?

L'Int de GraphQL est limité aux valeurs signées sur 32 bits ; des nombres plus grands seraient rejetés, ils sont donc associés à Float (ou utilisez un scalaire BigInt personnalisé).

Explorer d'autres catégories