Naar de inhoud

Introspectie JSON van GraphQL — Numio

Converteert GraphQL SDL naar het JSON-resultaat van een standaard introspectiequery met behulp van @graphql-codegen/introspection. De uitvoer bevat een __schema-object op het hoogste niveau met roottypen, elk type inclusief ingebouwde ins en richtlijnen.

Het produceren van een schema.json voor tools die introspectie JSON verwachten in plaats van SDL, zoals sommige IDE-plug-ins en clientgenerators.

GraphQL Schema

Introspection JSON

Wanneer gebruik je dit?

  • Het produceren van een schema.json voor tools die introspectie JSON verwachten in plaats van SDL, zoals sommige IDE-plug-ins en clientgenerators.
  • Inspecteren hoe het type van een veld is verpakt in de soorten NON_NULL en LIST in introspectiegegevens.

Hoe werkt het

  1. Plak het schema SDL in de GraphQL Schema-editor.
  2. Wacht op de JSON in het Introspection JSON-paneel; zelfs een schema met één veld levert ongeveer duizend regels op.
  3. Kopieer of download de JSON en sla deze op, bijvoorbeeld als schema.json.

GraphQL-schema

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

Introspectie 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
…

Details en beperkingen

Ingebouwde scalairen (String, Boolean), de introspectietypen (__Schema, __Type, __Field en andere) en de ingebouwde richtlijnen (include, skip, deprecated, specifiedBy) zijn altijd inbegrepen.

De JSON is niet verpakt in een "data" -sleutel; het begint direct met __schema.

De conversie wordt uitgevoerd in een Web Worker in uw browser. Deze pagina bevat alleen een schema; er wordt geen query uitgevoerd op een live eindpunt.

FAQ

Kan ik introspectie JSON krijgen van een URL?

Nee. De pagina converteert SDL die u plakt; het stuurt geen introspectievragen naar een server. Exporteer eerst SDL vanaf uw server en plak deze vervolgens hier.

Zijn verouderde velden opgenomen?

Ja. Elk veld en elke opsommingswaarde wordt vermeld met isDeprecated en deprecationReason, dus velden gemarkeerd met @deprecated verschijnen met isDeprecated: true.

Waarom is de uitvoer zo groot voor een klein schema?

Introspectieresultaten beschrijven het hele typesysteem, inclusief de ingebouwde scalairen, de introspectie-metatypes en richtlijndefinities, niet alleen uw eigen typen.

Specificaties en referenties