JSON zu GraphQL

Lokale Verarbeitung
app.graphql.view

Daten auch über #data={"name":"Ada"} oder #url=... einfügen; nach dem Lesen wird die Adressleiste geleert.

GraphQL-Typen aus einem JSON-Beispiel. Schneller als type von null, zum Debuggen von GraphQL-Antworten oder Mock-Entwürfen. Objekte werden benannte types, Arrays Listen.

Skalare ableiten

String, Zahl, Boolean zu GraphQL-Skalaren. Nested Objekte eigene types, nicht alles JSON.

null und Mischtypen: prüfen, ob Union nötig ist.

Nested types

Objekte benannte Typen, Arrays Listen. Tiefe Strukturen ergeben mehrere type-Blöcke als Schema-Entwurf.

Ob Felder nullable sind ( ! ) fachlich ergänzen.

Als Start

Danach ! Pflicht, Enums und Custom Scalars. Keine query-/mutation-Root-Operationen auf dieser Seite.

REST-Teams mit JSON-Vertrag: lieber Schema-Seite.

Beispiel

Beispiel-JSON
{
  "user": {
    "id": "u_1",
    "name": "Ada"
  }
}
Möglicher Typ-Entwurf
type User {
  id: String
  name: String
}

type Root {
  user: User
}
Ist das ein vollständiges GraphQL-Schema?

Nur types aus der Datenshape, ohne query / mutation.

JSON Schema oder diese Seite?

REST-Doku oft Schema; GraphQL-Dienste diese Seite.

Sind Feldnamen gültig?

Möglichst gültige Bezeichner. Seltsame Keys von Hand an GraphQL-Feldnamen anpassen.

Wird das Beispiel hochgeladen?

Nein. Ableitung im Browser.

Empfohlener Ablauf

  1. Typische Antwort aus GraphQL Playground oder Logs kopieren.
  2. types erzeugen, Nesting und Listen prüfen.
  3. Pflicht, Enums, Custom Scalars ergänzen, ins Server-Schema.
  4. Für REST-Doku die JSON-Schema-Seite.

Eine Antwort ergibt keinen vollständigen Graph. Mutation-Input und Paging weiter von Hand.