DokumenteBilderMedienPDF-Werkzeuge

JSON in GraphQL Schema Online konvertieren

GraphQL-Schemas automatisch aus JSON generieren, direkt in deinem Browser.

Processed in your browser

JSON zu GraphQL-Schema

Apollo Server-kompatibel

Schema sofort einsatzbereit in Apollo Server, GraphQL Yoga, Pothos, Nexus oder jeder anderen GraphQL-Implementierung.

100 % privat

Dein API-JSON wird ausschließlich in deinem Browser verarbeitet. Sensible Datenstrukturen verlassen nie dein Gerät.

Korrekte Typen

Erkennt String, Int, Float, Boolean und ID automatisch. Verschachtelte Objekte erhalten eigene Typen. Arrays als [Type]-Listen.

Sofort

GraphQL-Schema in Millisekunden fertig. Ohne Registrierung, ohne Wartezeit, ohne Limits.

Drei Schritte, kein Aufwand

1

Dein JSON einfügen

Füge ein beliebiges JSON-Objekt ein. Das Tool analysiert die Struktur und erstellt die passenden GraphQL-Typen.

2

GraphQL-Schema wird erstellt

Du erhältst GraphQL-Typen mit allen korrekt typisierten Feldern: String, Int, Float, Boolean und ID. Verschachtelte Objekte erhalten eigene Typen.

3

In Apollo Server verwenden

Kopiere das Schema und füge es als Ausgangspunkt in deinen GraphQL-Server ein – kompatibel mit Apollo Server, GraphQL Yoga und Pothos.

Noch Fragen?

GraphQL ist eine Abfragesprache für APIs, die Facebook (heute Meta) 2012 intern entwickelt und 2015 als Open-Source-Spezifikation veröffentlicht hat. Sie wurde entwickelt, um typische REST-Probleme in mobilen Apps zu lösen: Over-fetching (zu viele Daten), Under-fetching (zu viele Requests) und fehlende Typsicherheit. Die erste Implementierung war im iOS-Client von Facebook. Heute nutzen GitHub, Twitter, Shopify, Airbnb, Pinterest und tausende weitere Unternehmen GraphQL. Die Spezifikation wird von der GraphQL Foundation (Teil der Linux Foundation) gepflegt.

In GraphQL definiert type die Struktur der Daten, die der Server zurückgeben kann (in Queries und Mutations), während input die Struktur der Daten definiert, die der Client senden kann (Mutations-Argumente). type User { id: ID!, name: String! } beschreibt das zurückgebbare User-Objekt; input CreateUserInput { name: String!, email: String! } legt fest, welche Felder eine createUser-Mutation akzeptiert. Typen können Resolver haben, die Felder dynamisch berechnen; Inputs sind einfache Datenbehälter. Dieses Tool generiert Typen zur Modellierung bestehender JSON-Antworten.

GraphQL definiert 5 primitive Scalar-Typen in der Spezifikation: String (UTF-8-Text), Int (vorzeichenbehafteter 32-Bit-Integer), Float (Dezimalzahl doppelter Genauigkeit), Boolean (true/false) und ID (eindeutiger Bezeichner, als String oder Int dargestellt). GraphQL-Server können weitere benutzerdefinierte Scalars hinzufügen: Date, DateTime, URL, Email, JSON, UUID usw. Das Paket graphql-scalars für Node.js bietet über 50 solcher benutzerdefinierten Scalars. Dieses Tool verwendet die 5 Standardtypen für maximale Kompatibilität.

In GraphQL wird jedes verschachtelte Objekt im JSON zu einem eigenen Typ. Ein JSON mit {order: {product: {id: 1, name: Widget}}} erzeugt: type RootType { order: Order }, type Order { product: Product }, type Product { id: Int, name: String }. Das spiegelt das Wesen des GraphQL-Schemas wider: Alle Typen sind benannt und wiederverwendbar. Derselbe Product-Typ kann in mehreren übergeordneten Typen auftauchen. Arrays von Objekten werden als [Product] (Liste von Product) dargestellt.

Ein Resolver ist eine Funktion, die weiß, wie die Daten für ein bestimmtes Schema-Feld abgerufen werden. In Apollo Server kann jedes Feld jedes Typs einen eigenen Resolver haben. Ist keiner definiert, nutzt Apollo den DefaultFieldResolver, der einfach die gleichnamige Eigenschaft des übergeordneten Objekts zurückgibt. Resolver erlauben es, Daten aus verschiedenen Quellen zu beziehen: Datenbank, andere API, Cache oder Echtzeitberechnung. Das GraphQL-Schema (von diesem Tool generiert) definiert den Vertrag; Resolver implementieren, wie er erfüllt wird.

GraphQL-Verbreitung, Apollo Server, Schema-first vs. Code-first und die Migration von REST zu GraphQL

GraphQL wurde von Facebook im Juli 2015 als Open Source veröffentlicht und erzeugte schnell ein lebendiges Ökosystem. Apollo GraphQL (gegründet 2016) entwickelte Apollo Server und Apollo Client und wurde zur Referenzimplementierung. 2018 migrierte GitHub seine öffentliche API von REST v3 auf GraphQL v4 – ein Meilenstein, der GraphQL für groß angelegte Produktions-APIs validierte. Die GraphQL Foundation wurde 2019 unter der Linux Foundation gegründet, um die Spezifikation zu standardisieren. Im Jahr 2024 ist GraphQL die zweitmeistgenutzte API-Spezifikation nach REST, vertreten in den meisten Startups und vielen Fortune-500-Unternehmen.

Für den Aufbau von GraphQL-APIs gibt es zwei Hauptansätze: Schema-first und Code-first. Bei Schema-first definierst du zuerst das SDL-Schema (Schema Definition Language) und implementierst anschließend die Resolver. Das ist der ursprüngliche, transparenteste Ansatz: Der API-Vertrag ist als Text sichtbar und bearbeitbar. Bei Code-first definierst du das Schema über Code (TypeScript bei Nexus oder Pothos), und das SDL-Schema wird automatisch generiert. Code-first wird bevorzugt, wenn man End-to-End-Typsicherheit mit TypeScript anstrebt. Dieses Tool generiert SDL (Schema-first).

Die Migration von REST zu GraphQL ist ein schrittweiser Prozess, den viele Unternehmen mit dem BFF-Muster (Backend For Frontend) angehen: Anstatt bestehende REST-APIs zu ersetzen, wird eine GraphQL-Schicht hinzugefügt, die mehrere REST-Endpoints bündelt. Dieses von Netflix und Airbnb popularisierte Muster ermöglicht eine inkrementelle GraphQL-Einführung, ohne bestehende Dienste zu stören. GraphQL Federation (Apollo) geht noch weiter: Es erlaubt, mehrere GraphQL-Services zu einem einheitlichen Graphen zusammenzuführen und so Supergraph-Architekturen zu ermöglichen, bei denen jeder Microservice seinen eigenen Subgraphen bereitstellt.