Wer Bestands-Synchronisations-Apps für Shopify vergleicht, sieht auf den Vorstellungsseiten manchmal Sätze wie „GraphQL-fähig“ oder „nutzt die neueste API“. Ohne Entwicklerhintergrund überliest man solche Zeilen leicht. Tatsächlich beeinflusst es aber im Stillen, was Sie vor dem Bildschirm erleben, ob die App im Hintergrund REST oder GraphQL verwendet.
Dieser Beitrag verzichtet komplett auf Code. Er ordnet ein, dass Shopifys Bestands-API in einer REST- und einer GraphQL-Variante existiert, und beschreibt das jeweilige Temperament. Hoffentlich hilft er Ihnen, bei der App-Auswahl bewusster zu entscheiden.
Überblick über Shopifys Bestands-API
Grundvoraussetzung: Shopify stellt externen Apps offiziell einen Mechanismus zum Lesen und Schreiben des Bestands bereit. Das ist die sogenannte Admin API. Dass eine Drittanbieter-App wie Sync Master den Bestand in Shopify aus einem Google-Sheet überschreiben kann, ist genau dieser API zu verdanken.
Intern teilt sich die Admin API in zwei Varianten. Die eine heißt REST und ist seit Langem etabliert. Die andere heißt GraphQL und ist vergleichsweise neu. Beide können im Grunde Ähnliches, doch die Art der Datenausgabe und das Effizienzdenken unterscheiden sich. Shopify selbst veröffentlicht neue Funktionen zuerst auf der GraphQL-Seite, und auch die Branche wandert insgesamt in Richtung GraphQL.
Wie REST und GraphQL denken
Erklären wir den Unterschied mit alltäglichen Bildern.
REST = Anfrage pro Ressource
REST ordnet seine Schalter nach Datentyp: „Produkte in dieser Schublade, Bestellungen in jener, Bestand in der danebenliegenden“. Fragen Sie „Geben Sie mir Informationen zu Produkt-ID 123“, erhalten Sie ein Bündel Informationen zu diesem Produkt. Einfach und verständlich, aber wenn Sie nur Produktname und Bestand brauchen, kommt typischerweise ein ganzer Stapel unzusammenhängender Informationen mit.
GraphQL = nur die benötigten Felder, gebündelt
GraphQL geht davon aus, dass „Sie zur Anfragezeit genau angeben können, was Sie möchten“. Sie sagen etwa „nur Name, Bestand und SKU von Produkt 123, aufgeschlüsselt nach Standorten“ — und genau das bekommen Sie. Außerdem lassen sich mehrere Datentypen in einer einzigen Anfrage zusammenholen. Der Datenverkehr wird leichter, und es werden keine unnötigen Informationen transportiert.
Welche Apps setzen worauf?
Was nutzen reale Drittanbieter-Apps? Die Tendenz: Lang etablierte Apps sind häufiger auf REST gebaut, in jüngerer Zeit veröffentlichte oder grundlegend überarbeitete Apps setzen häufiger auf GraphQL. Weil Shopify neue bestandsbezogene Funktionen zuerst auf der GraphQL-Seite ausliefert, wählen Entwicklerinnen und Entwickler, die schnell auf neue Funktionen zugreifen wollen, eher GraphQL.
Das heißt nicht, dass „REST-Apps alt und schlecht sind“. REST-basierte Apps, die im Produktivbetrieb stabil laufen, sind absolut verlässliche Optionen. Wer dagegen heute eine neue App auswählt, profitiert tendenziell mehr von einer, die ihre GraphQL-Unterstützung hervorhebt — sie folgt zukünftigen Funktionserweiterungen mit höherer Wahrscheinlichkeit.
Spürbare Unterschiede aus Nutzersicht
Wie zeigen sich die technischen Unterschiede tatsächlich für die Nutzenden? Darum geht es eigentlich. Es gibt mehrere Punkte, die man konkret spürt.
- Dauer der Synchronisation: Da der Datenaustausch effizienter ist, gewinnen GraphQL-basierte Apps mit wachsendem Sortiment tendenziell beim Tempo
- Maximale Sortimentsgröße: GraphQL kann mehr pro Anfrage transportieren, bleibt also bei sehr großen Katalogen oft stabiler
- Tempo neuer Funktionen: Da Shopify Neues zuerst über GraphQL ausspielt, kommen Unterstützung für neue Bestandsfunktionen (Metafeld-Anbindungen, feinere Standortsteuerung) meist schneller
- Verhalten bei Fehlern: GraphQL kann Teil-Erfolge und Teil-Fehler zurückgeben, was die Sichtbarkeit darüber verbessert, wie viele von N Datensätzen wirklich erfolgreich waren
Das sind Tendenzen, keine Naturgesetze. In der Praxis hängt vieles von der Umsetzung ab: Es gibt REST-Apps, die richtig schnell sind, und GraphQL-Apps, die langsam laufen. Nehmen Sie „GraphQL-Unterstützung“ also als einen Hinweis — wichtiger ist, im Maßstab Ihres Stores zu testen, ob Geschwindigkeit und Genauigkeit Ihren Anforderungen genügen.
Der Unterschied zwischen REST und GraphQL ist gewissermaßen ein Unterschied im Motoraufbau. So wie Sie beim Autokauf nicht jedes Motor-Detail kennen müssen, müssen Sie API-Unterschiede nicht täglich vor Augen haben. Wer aber jemals gefragt hat, „warum ist diese App so schnell“ oder „warum unterstützt sie neue Funktionen so früh“, findet die Antwort hier — und trifft die App-Wahl mit deutlich mehr Souveränität.