DOCS

Warum GraphQL

Entdecken Sie, warum wir die Integration über GraphQL anstelle von REST empfehlen.

Bei Zonos bieten wir zwei Haupttypen von APIs zur Integration an: GraphQL und REST. Während es REST APIs schon länger gibt und vielen vielleicht vertrauter sein dürfte, sind wir zu GraphQL übergegangen, um mehr Flexibilität und schnellere Innovationen zu ermöglichen. Obwohl beide weiterhin unterstützt werden, erklärt dieser Leitfaden, warum GraphQL nicht nur die Zukunft unserer Integrationen ist, sondern auch die Zukunft der Integrationen im Allgemeinen und ein leistungsfähigeres Tool, um Ihre heutigen Anforderungen zu erfüllen.

Was ist GraphQL? 

GraphQL ist eine alternative Art der Kommunikation mit APIs, die sich hervorragend für komplexe Datenstrukturen und den darauf aufbauenden Aufbau von Schnittstellen eignet. Im Gegensatz zur Behandlung von Daten als separate, eigenständige Teile zeigt GraphQL, wie Datenteile miteinander verbunden und in Beziehung gesetzt werden, wodurch es einfacher wird, Informationen anzufordern und zu erhalten.

Stellen Sie sich GraphQL als eine Abfragesprache vor, die es Ihnen ermöglicht, mit API zu kommunizieren, als ob Sie direkt mit der Datenbank sprechen würden. Durch die Verwendung von GraphQL können Sie so nah wie möglich an die Datenbank herankommen und auswählen, welche Daten Sie benötigen und wie Sie diese erhalten, was zu einem enormen Leistungsvorteil führt.

GraphQL wurde von Facebook entwickelt, um das Problem der Skalierung mit komplexen Datenstrukturen zu lösen. Aufgrund der erfolgreichen Einführung haben immer mehr Unternehmen begonnen, die Vorteile der Verwendung von GraphQL für ihre APIs zu erkennen.

Kennen Sie REST schon? GraphQL wird Ihnen bekannt vorkommen.

GraphQL APIs sind einfacher zu bearbeiten, als Sie vielleicht denken. Wenn Sie es gewohnt sind, mit REST APIs zu arbeiten, erfahren Sie hier, wie Kernkonzepte von REST in GraphQL übersetzt werden.

BesonderheitRESTGraphQL
EndpunktEs werden Anfragen für unterschiedliche Aktionen an mehrere Endpunkte gestelltAlle Anfragen werden an einen einzelnen Endpunkt gestellt (z. B. /graphql)
DatenabrufVerwenden Sie GET-Methoden auf bestimmten Endpunkten, um Daten abzurufenVerwenden Sie Abfragen, um genau die benötigten Daten anzufordern und Over- oder Under-Fetching zu vermeiden
Datenänderung/AktionenVerwenden Sie HTTP-Methoden wie POST, PUT, PATCH oder DELETE, um Daten zu ändern oder zu verarbeiten.Verwenden Sie Mutationen, um Operationen durchzuführen (z. B. Parteien erstellen, Landed Costs berechnen)
AntwortformatFeste Antwortformate geben alle vordefinierten Felder zurück, unabhängig davon, ob sie benötigt werdenFlexible Antworten ermöglichen die genaue Angabe der einzuschließenden Felder, wodurch unnötige Datenübertragung reduziert wird (falls diese Flexibilität kompliziert wirkt, verwenden Sie einfach die vorgefertigten Abfragebeispiele in unserer Dokumentation für eine RESTful-Erfahrung)
DatenverbindungHäufig sind mehrere Anfragen erforderlich, um zusammenhängende Daten abzurufenVerschachtelte Abfragen ermöglichen den Abruf zusammenhängender Daten in einer einzigen Anfrage (z. B. Party-Details und Sendungspositionen zusammen). Nutzer können auch Workflows erstellen, um mehrere Mutationen innerhalb einer einzigen GraphQL-Anfrage zu verwalten, wodurch die Komplexität reduziert und die Effizienz verbessert wird

Vorteile von GraphQL

Eine Analogie 

Stellen Sie sich vor, Sie sind in einem Restaurant mit einer Speisekarte, die es Ihnen erlaubt, Gerichte genau nach Ihren Wünschen zu bestellen, im Vergleich zu einem anderen Restaurant, in dem Sie nur aus festen Menüs wählen können. GraphQL ist wie das erste Restaurant:

  • Genau das bekommen, was Sie wollen: Mit GraphQL können Sie genau die Daten anfordern, die Sie benötigen – nicht mehr und nicht weniger. Stellen Sie sich vor, Sie möchten nur den Namen und den Preis eines Gerichts, nicht die gesamte Zutatenliste. Bei REST APIs müssen Sie die vollständigen Details des Gerichts erhalten und die Teile ignorieren, die Sie nicht benötigen.
  • Ein individuelles Gericht zusammenstellen: Unsere GraphQL API lässt sich leicht kombinieren, um individuellere Lösungen zu schaffen – ähnlich wie ein Buffet-Restaurant, in dem Sie mit den bereits vorhandenen Zutaten ein einzigartiges Gericht genau nach Ihren Bedürfnissen zusammenstellen können. Im Gegensatz dazu ist eine REST API wie eine Bäckerei mit vorgefertigten, in Körben verpackten Waren – Sie können nur bestellen, was bereits fertig ist, und Sie können nicht nur das eine Stück mitnehmen, das Sie möchten.
  • Weniger Wartezeit: Da Sie alle benötigten Informationen in einer einzigen Anfrage erhalten können, ist es, als würden Sie Ihren Kellner bitten, Vorspeise, Hauptgang und Dessert gleichzeitig zu bringen, statt zwischen den Gängen zu warten. Die meisten REST APIs erfordern mehrere Anfragen, um unterschiedliche Informationen zu erhalten.
  • Bestellungen einfach ändern: Wenn sich die Datenanforderungen Ihrer App ändern, macht GraphQL die Anpassung einfacher. Sie ändern einfach die Abfrage für das, was Sie benötigen. Bei REST müssen Sie möglicherweise warten, bis die Küche (Backend) ein neues Gericht (Endpunkt) für die Speisekarte erstellt, was mehr Zeit in Anspruch nimmt.

GraphQL bietet mehr Flexibilität, Effizienz und Einfachheit beim Abrufen von Daten als REST APIs, besonders wenn sich Ihre Anforderungen ändern oder wachsen.

Wie Zonos GraphQL nutzt 

Im Zuge der Modernisierung unserer Plattform in den letzten Jahren hat sich Zonos dafür entschieden, neue Funktionalitäten für unsere API mit GraphQL statt mit REST zu entwickeln. Wir haben uns dafür entschieden, weil unsere Daten komplex und miteinander verknüpft sind, ähnlich wie die Daten, die Facebook zur Entwicklung von GraphQL bewogen haben. Diese Komplexität macht es schwierig, skalierbare REST APIs zu erstellen, da sich die Art und Weise, wie Entwickler Daten abrufen und nutzen müssen, zwischen den Implementierungen stark unterscheidet, und REST nicht flexibel genug ist.

GraphQL löst dieses Problem elegant, indem es Entwicklern, die unsere API implementieren, ermöglicht, genau die Daten auszuwählen, die sie benötigen, und zu bestimmen, wie sie diese erhalten. Dadurch können sie es in ihre Workflows integrieren, ohne dass Zonos für jede Situation individuelle Anpassungen vornehmen muss (während sie warten).

Das Zusammenspiel aus der Nutzung von GraphQL und den Modernisierungen unserer Plattform hat unsere API leistungsfähiger gemacht, die Integration von Zonos in Ihre Systeme beschleunigt und es Zonos ermöglicht, neue Funktionen schneller bereitzustellen.

Bessere Funktionen

Zonos entwickelt kontinuierlich neue Funktionen, und GraphQL ist die erste (und meist einzige) Schnittstelle, die diese Updates erhält. Im Gegensatz dazu gelten unsere REST APIs als End-of-Life und haben keinen Zugriff auf viele unserer neuen Funktionen.

Beispiele für Funktionen, die auf GraphQL beschränkt sind:

  • Inclusive Pricing
  • Labels API
  • New Checkout und Hello
  • Kartongrößen in der API-Antwort
  • Dashboard-Reporting
  • Möglichkeit, ein DDP-Angebot anzufordern, sofern verfügbar, aber trotzdem ein DDU-Angebot zurückzugeben, wenn DDP für dieses Land mit dieser Servicestufe nicht verfügbar ist
  • Detaillierte Aufschlüsselung von Zöllen, Steuern und Gebühren (Informationen auf Artikelebene, spezifische Gebühren) – das Dashboard wird von GraphQL angetrieben und zeigt diese Daten für alle Shops an, die REST-API-Antwort enthält diesen Detaillierungsgrad jedoch nicht
  • Testmodus (in Kürze verfügbar)

War diese Seite hilfreich?