Vai al contenuto

Introspezione JSON da GraphQL — Numio

Converte GraphQL SDL nel risultato JSON di una query di introspezione standard utilizzando @graphql-codegen/introspection. L'output contiene un oggetto __schema di livello superiore con i tipi root, tutti i tipi inclusi quelli incorporati e le direttive.

Produzione di uno schema.json per strumenti che prevedono l'introspezione JSON anziché SDL, come alcuni plug-in IDE e generatori di client.

GraphQL Schema

Introspection JSON

Quando usarlo

  • Produzione di uno schema.json per strumenti che prevedono l'introspezione JSON anziché SDL, come alcuni plug-in IDE e generatori di client.
  • Ispezione del modo in cui il tipo di un campo viene racchiuso nei tipi NON_NULL e LIST nei dati di introspezione.

Come si usa

  1. Incolla lo schema SDL nell'editor dello schema GraphQL.
  2. Attendi JSON nel pannello Introspezione JSON; anche uno schema a un campo produce circa mille righe.
  3. Copia o scarica JSON e salvalo, ad esempio come schema.json.

Schema GraphQL

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

Introspezione JSON

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

Dettagli e limiti

Gli scalari incorporati (String, Boolean), i tipi di introspezione (__Schema, __Type, __Field e altri) e le direttive integrate (include, skip, deprecated, specifiedBy) sono sempre inclusi.

Il JSON non è racchiuso in una chiave "data"; inizia direttamente con __schema.

La conversione viene eseguita in un Web Worker nel tuo browser. Questa pagina richiede solo uno schema; non interroga un endpoint attivo.

FAQ

Posso ottenere l'introspezione JSON da uno URL?

No. La pagina converte SDL che incolli; non invia query di introspezione a un server. Esporta prima SDL dal tuo server, quindi incollalo qui.

Sono inclusi i campi obsoleti?

Sì. Ogni campo e valore enum è elencato con isDeprecated e deprecationReason, quindi i campi contrassegnati con @deprecated vengono visualizzati con isDeprecated: true.

Perché l'output è così grande per uno schema piccolo?

I risultati dell'introspezione descrivono l'intero sistema di tipi, inclusi gli scalari incorporati, i metatipi di introspezione e le definizioni delle direttive, non solo i tuoi tipi.

Specifiche e riferimenti