JSON vers GraphQL

Traitement local
app.graphql.view

Vous pouvez aussi injecter des données via #data={"name":"Ada"} ou #url=... Elles sont lues puis retirées de la barre d’adresse.

Inférez des types GraphQL à partir d’un exemple JSON. Pour déboguer une réponse GraphQL ou démarrer un mock, plus rapide que d’écrire les type à la main. Les objets deviennent des type nommés, les tableaux des listes.

Inférence des scalaires

Chaînes, nombres et booléens correspondent aux scalaires GraphQL. Les objets imbriqués deviennent des type distincts, au lieu de tout aplatir en JSON.

null et types mixtes : confirmez s’il faut une union.

Types imbriqués

Les objets deviennent des types nommés, les tableaux des listes. Une structure profonde produit plusieurs blocs type, à coller comme brouillon dans un fichier schema.

La nullabilité des champs ( ! ) se complète selon le métier.

Point de départ

Ensuite, ajoutez ! requis, enum et scalaires personnalisés. Cette page n’a pas d’opérations query / mutation racine.

Pour une équipe REST qui veut seulement un contrat JSON, la page Schema convient mieux.

Exemple

JSON d’exemple
{
  "user": {
    "id": "u_1",
    "name": "Ada"
  }
}
Brouillon de types possible
type User {
  id: String
  name: String
}

type Root {
  user: User
}
Est-ce un schema GraphQL complet ?

Ce ne sont que des type inférés de la forme des données, sans query / mutation.

Comment choisir face à JSON Schema ?

Doc REST : souvent Schema ; service GraphQL : cette page est plus naturelle.

Les noms de champs sont-ils valides ?

Des identifiants utilisables sont générés autant que possible. Les clés étranges se renomment à la main en champs GraphQL autorisés.

L’exemple est-il envoyé ?

Non. L’inférence reste dans le navigateur.

Flux recommandé

  1. Copiez une réponse typique depuis un playground GraphQL ou un journal.
  2. Générez les type, vérifiez le découpage de l’imbrication et les listes.
  3. Complétez requis, enum, scalaires personnalisés, puis intégrez au schema serveur.
  4. Pour une doc REST, utilisez plutôt la page JSON Schema.

Une réponse ne reconstitue pas tout le graphe. Arguments de mutation et conventions de pagination restent à écrire à la main.