Saltar al contenido

Generar JSON de introspección de GraphQL — Numio

Convierte SDL de GraphQL en el resultado JSON de una query de introspección estándar con @graphql-codegen/introspection. La salida contiene un objeto __schema de nivel superior con los tipos raíz, todos los tipos (incluidos los integrados) y las directivas.

Generar un schema.json para herramientas que esperan JSON de introspección en lugar de SDL, como algunos plugins de IDE y generadores de clientes.

GraphQL Schema

Introspection JSON

Cuándo usarla

  • Generar un schema.json para herramientas que esperan JSON de introspección en lugar de SDL, como algunos plugins de IDE y generadores de clientes.
  • Ver cómo se envuelve el tipo de un campo en los kinds NON_NULL y LIST dentro de los datos de introspección.

Cómo usarla

  1. Pega el SDL del esquema en el editor GraphQL Schema.
  2. Espera al JSON en el panel Introspection JSON; incluso un esquema de un solo campo produce unas mil líneas.
  3. Copia o descarga el JSON y guárdalo, por ejemplo como schema.json.

Esquema GraphQL

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

JSON de introspección

{
  "__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
…

Detalles y limitaciones

Siempre se incluyen los escalares integrados (String, Boolean), los tipos de introspección (__Schema, __Type, __Field y otros) y las directivas integradas (include, skip, deprecated, specifiedBy).

El JSON no va envuelto en una clave "data"; empieza directamente por __schema.

La conversión se ejecuta en un Web Worker de tu navegador. Esta página solo recibe un esquema; no consulta ningún endpoint en vivo.

FAQ

¿Puedo obtener el JSON de introspección desde una URL?

No. La página convierte el SDL que pegas; no envía queries de introspección a ningún servidor. Exporta primero el SDL desde tu servidor y pégalo aquí.

¿Se incluyen los campos obsoletos?

Sí. Cada campo y valor de enum aparece con isDeprecated y deprecationReason, así que los campos marcados con @deprecated aparecen con isDeprecated: true.

¿Por qué la salida es tan grande para un esquema pequeño?

Los resultados de introspección describen todo el sistema de tipos, incluidos los escalares integrados, los metatipos de introspección y las definiciones de directivas, no solo tus propios tipos.

Especificaciones y referencias