Aller au contenu

Générer le JSON d’introspection GraphQL — Numio

Convertit du SDL GraphQL en résultat JSON d'une query d'introspection standard avec @graphql-codegen/introspection. La sortie contient un objet __schema de premier niveau avec les types racine, tous les types (y compris les types intégrés) et les directives.

Produire un schema.json pour les outils qui attendent du JSON d'introspection plutôt que du SDL, comme certains plugins d'IDE et générateurs de clients.

GraphQL Schema

Introspection JSON

Quand l’utiliser

  • Produire un schema.json pour les outils qui attendent du JSON d'introspection plutôt que du SDL, comme certains plugins d'IDE et générateurs de clients.
  • Voir comment le type d'un champ est enveloppé dans les kinds NON_NULL et LIST dans les données d'introspection.

Mode d’emploi

  1. Collez le SDL du schéma dans l'éditeur GraphQL Schema.
  2. Attendez le JSON dans le panneau Introspection JSON ; même un schéma d'un seul champ produit environ mille lignes.
  3. Copiez ou téléchargez le JSON et enregistrez-le, par exemple sous schema.json.

Schéma GraphQL

type Query {
  hello(name: String): String!
}

JSON d'introspection

{
  "__schema": {
    "queryType": {
      "name": "Query"
    },
    "mutationType": null,
    "subscriptionType": null,
    "types": [
      {
        "kind": "OBJECT",
        "name": "Query",
        "description": null,
        "fields": [
          {
            "name": "hello",
            "description": null,
            "args": [
              {
                "name": "name",
                "description": null,
                "type": {
                  "kind": "SCALAR",
                  "name": "String",
                  "ofType": null
…

Détails et limites

Les scalaires intégrés (String, Boolean), les types d'introspection (__Schema, __Type, __Field et autres) et les directives intégrées (include, skip, deprecated, specifiedBy) sont toujours inclus.

Le JSON n'est pas enveloppé dans une clé "data" ; il commence directement par __schema.

La conversion s'exécute dans un Web Worker de votre navigateur. Cette page ne prend qu'un schéma ; elle n'interroge aucun endpoint en ligne.

FAQ

Puis-je obtenir le JSON d'introspection depuis une URL ?

Non. La page convertit le SDL que vous collez ; elle n'envoie aucune query d'introspection à un serveur. Exportez d'abord le SDL depuis votre serveur, puis collez-le ici.

Les champs dépréciés sont-ils inclus ?

Oui. Chaque champ et chaque valeur d'enum est listé avec isDeprecated et deprecationReason, donc les champs marqués @deprecated apparaissent avec isDeprecated: true.

Pourquoi la sortie est-elle si volumineuse pour un petit schéma ?

Les résultats d'introspection décrivent l'ensemble du système de types, y compris les scalaires intégrés, les méta-types d'introspection et les définitions de directives, et pas seulement vos propres types.

Spécifications et références