Das GraphQL-Typsystem verstehen

Von skalaren und benutzerdefinierten Typen bis zu Objekten und Root-Operationen – wir erklären Ihnen die Grundlagen des GraphQL Typsystems und wie sie ein vollständiges GraphQL-Schema bilden.

Skalare Typen

Beginnen wir mit den skalaren Typen, die die grundlegenden Bausteine in einem GraphQL-Schema darstellen. Skalare Typen repräsentieren einfache, primitive Werte. GraphQL bietet fünf eingebaute skalare Typen:

  1. Int: Dieser Typ repräsentiert ganze Zahlen ohne Dezimalstellen. Beispielsweise: 42.
  2. Float: Float steht für Fließkommazahlen, also Zahlen mit Dezimalstellen. Zum Beispiel: 3.14.
  3. String: Hierbei handelt es sich um Zeichenketten, die Text darstellen. Zum Beispiel: „Hallo, Welt!“.
  4. Boolean: Dieser Typ hat nur zwei mögliche Werte: true oder false. Ein gutes Beispiel wäre: true.
  5. ID: ID steht für eine eindeutige Kennung. Sie wird immer als Zeichenkette übertragen, selbst wenn sie numerisch ist. Zum Beispiel: „abc123“.

Darüber hinaus können Sie benutzerdefinierte skalare Typen erstellen, um spezifische Anforderungen zu erfüllen. Beispielsweise könnten Sie einen „Date“ oder „Time“ Typ erstellen.

Enum-Typen

Der Enum-Typ (auch Enumerator-Typ) ermöglicht es, eine Liste von festen Werten zu definieren. Enums sind hilfreich, wenn Sie die Antwort genauer kontrollieren möchten. Zum Beispiel könnten Sie Enums verwenden, um die Jobs oder Spezies von Charakteren in einem Spiel festzulegen.

Nicht-Null- und Listen-Typen

In GraphQL sind alle Typen standardmäßig nullable, was bedeutet, dass sie null sein können. Um einen Typen als nicht null zu deklarieren, fügen Sie ein Ausrufezeichen hinzu, wie in „String!“. Dies garantiert, dass das Feld immer einen Wert zurückgibt.

Listen-Typen, die durch eckige Klammern angegeben werden, repräsentieren Sammlungen von Werten desselben Typs. Zum Beispiel, „[String]“ definiert eine Liste von Zeichenketten.

Sie können Nicht-Null- und Listen-Typen kombinieren, um beispielsweise eine nicht leere Liste von Zeichenketten zu erstellen: „[String!]“.

Objekttypen

Objekttypen bilden die „Zweige“ eines GraphQL-Schemas und repräsentieren komplexe Datenstrukturen. Sie bestehen aus benannten Feldern und den Typen, die diese Felder auflösen. Ein Objekttyp wird mit dem Schlüsselwort „type“ definiert. Zum Beispiel könnten Sie einen „User“-Objekttyp erstellen, der die Felder „name“ (String) und „email“ (String) enthält.

Root-Operationstypen

In einem GraphQL-Schema gibt es drei spezielle Objekte, die als Einstiegspunkte dienen: Query, Mutation und Subscription. Der „Query“-Typ ermöglicht das Lesen von Daten und entspricht einem REST GET-Request. „Mutation“ ist für Schreiboperationen wie POST oder PUT in REST. „Subscription“ ermöglicht die Verfolgung von Ereignissen und wird oft in Verbindung mit Websockets verwendet.

Feldargumente

Felder in GraphQL-Objekten können Argumente akzeptieren, um Abfragen genauer zu steuern. Zum Beispiel, wenn Sie nach einem bestimmten Benutzer anhand seiner ID suchen möchten, können Sie ein Feld „user“ erstellen, das eine ID als Argument erwartet.

Interface-Typen

Interface-Typen ermöglichen die Definition einer gemeinsamen Menge von Feldern, die von verschiedenen Objekten geteilt werden können. Dies ist nützlich zu verstehen, wenn mehrere Objekte ähnliche Felder haben. Zum Beispiel könnten verschiedene Charaktertypen (Kämpfer, Zauberer, Heiler) ein gemeinsames „Character“-Interface implementieren.

Union-Typen

Union-Typen ermöglichen es, mehrere verschiedene Objekttypen in einem einzigen Typ zu vereinen. Sie sind nützlich, wenn ein Feld unterschiedliche Typen zurückgeben kann. Zum Beispiel könnten Sie eine „SearchResult“-Union erstellen, die sowohl „User“- als auch „Post“-Objekte enthält.

Quelle: digitalocean.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

IoT-Automatisierung mit MQTT Broker und MongoDB

Databases, Tutorial
Vijona23 Juni um 13:14 Uhr IoT-Automatisierungspipeline mit Coreflux MQTT Broker und MongoDB bereitstellen MQTT-Broker gehören zu den zentralen Bausteinen moderner IoT-Infrastrukturen und Automatisierungsumgebungen. Sie dienen als zentraler, einheitlicher und schneller Datenknotenpunkt,…
Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

Coreflux MQTT Broker mit Managed Databases einrichten

Databases, Tutorial
Vijona17 Juni um 10:00 Uhr Coreflux MQTT Broker mit Managed Databases für IoT-Datenverarbeitung bereitstellen MQTT Broker verbinden IoT-Geräte und Anwendungen über ein Publish-Subscribe-Messaging-Modell und sind damit ein zentraler Bestandteil moderner IoT-Infrastrukturen.…
Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

Kafka und MongoDB: Echtzeit-Datenpipelines aufbauen

Databases, Tutorial
Vijona16 Juni um 15:09 Uhr So erstellen Sie Echtzeit-Datenpipelines mit Kafka und MongoDB Die Welt verändert sich mit hoher Geschwindigkeit, besonders im Technologiesektor, der Arbeitsabläufe in unterschiedlichsten Branchen und Unternehmen fortlaufend…