Was dieses Werkzeug tut
Aus einer JSON-Probe werden GraphQL-SDL-Typen, einer je Objekt.
{ "id": 1, "name": "Ada", "tags": ["admin"], "address": { "city": "Paris" } }
type Root {
id: Int!
name: String!
tags: [String!]!
address: Address!
}
type Address {
city: String!
}
[String!]! liest man von außen nach innen: die Liste ist nie null, und kein Element ist es. Beide Hälften stammen aus der Probe, die eine Liste hatte und Zeichenketten darin.
Nur Typen — noch kein Schema
Kein Query, kein Mutation, keine Direktiven. Eine JSON-Nutzlast sagt, wie die Daten aussehen, nicht welche Felder ein Server anbietet oder wie sie heißen. Ergänzen Sie den Einstiegspunkt selbst:
type Query {
root: Root!
}
Ohne ihn beschreibt die Datei Typen, nach denen niemand fragen kann.
Was SDL nicht ausdrücken kann, wird benannt, nicht vorgetäuscht
nullund unbekannte Werte werden zu einem eigenenJSON-Skalar, oben deklariert und Ihrer Umsetzung überlassen. SDL kennt keinen „irgendetwas“-Typ.- Ein gemischtes Array wird
[JSON]!, aus demselben Grund: eine Liste gemischter Formen ist kein GraphQL-Listentyp. - Eine Ganzzahl außerhalb von 32 Bit wird
BigInt, ein weiterer eigener Skalar. GraphQLsIntist 32-Bit-vorzeichenbehaftet: eine elfstellige Kennung ist darin nicht darstellbar, und ein Server, der sie liefert, wirft beim Serialisieren. Sie wurde trotzdemInt!getypt; ein echter Fehler, beim Schreiben dieser Seite gefunden und behoben. - Ein leeres Objekt wird abgelehnt.
type A {}ist kein gültiges SDL — ein Typ muss mindestens ein Feld definieren — also hält die Umwandlung an und nennt den Typ, statt Ihnen ein Schema zu geben, das kein Server parst. Auch das wurde hier gefunden und behoben.
Namen werden repariert, Kollisionen getrennt gehalten
Ein GraphQL-Name erlaubt nur Buchstaben, Ziffern und _ und beginnt nie mit einer Ziffer. content-type wird content_type, 2fa wird _2fa. Treffen zwei reparierte Namen in einem Typ aufeinander, bekommt der zweite ein Suffix: nichts wird stillschweigend verschmolzen.
Ein Skalar an der Wurzel — 42, "Text" — wird abgelehnt: SDL beschreibt Objekttypen, und da gibt es nichts zu beschreiben.
Datenschutz ab Werk
Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.