Mit Shopify können wir die GraphQL- und REST-API verwenden, mit der wir aus der Perspektive des Codes auf der Vorderseite mit dem Back-End des Stores kommunizieren können. In der Vergangenheit war REST ein allgemein anerkannter Standard beim Design und der Entwicklung von APIs, aber seit einigen Jahren gewinnt GraphQL an Popularität und gewinnt immer mehr Fans.
Facebook-Revolution
Facebook präsentierte GraphQL als revolutionäre Alternative zu REST-APIs, sodass der Unterschied zwischen den beiden Ansätzen beträchtlich ist. REST ist der allgemeine Architekturstandard zum Erstellen von APIs, während GraphQL auch eine Abfragesprache und eine Reihe von Tools ist, die mit dem HTTP-Protokoll auf einem Endpunkt ausgeführt werden.
Der Vorteil der Verwendung der REST-API liegt in der Einfachheit. Wir benötigen hierfür keine Bibliotheken oder externen Pakete. Wir senden eine Anfrage unter Verwendung von z. fetch (das in JavaScript nativ verfügbar ist) oder axios, woraufhin der Server eine Antwort zurückgibt. Eines der REST-Probleme ist das „Überholen“. Der Punkt ist, dass wir die von der API zurückgegebenen Felder nicht einschränken können, sondern immer den vollständigen Datensatz erhalten. Im Fall von GraphQL können wir die Felder angeben, die wir als Antwort erhalten möchten.
Stellen Sie sich zum Beispiel vor, wir haben eine Filmtafel, auf der jedes Objekt Informationen zu einem einzelnen Film enthält. Titel, Beschreibung, Regisseur usw., und wir möchten nur Filmtitel auf der Vorderseite anzeigen. Mit GraphQL können wir die Anforderung angeben, Daten aus einem bestimmten Feld abzurufen, z. „Titel“, und wir müssen nicht warten, bis der Server den gesamten Datensatz zurückgibt, um die Filmtitel später selbst anzuzeigen.
Dies ist mehr als die API
Wie oben erwähnt, ist GraphQL auch eine Reihe von Werkzeugen, da GraphiQL ein Beispiel ist. Es ist eine integrierte Umgebung, ein Tool, mit dem wir die richtige Abfragestruktur und Mutationen erstellen können (ein neueres und interessanteres Äquivalent dieser IDE ist GraphQL Playground). Dank Apollo haben wir Zugriff auf den Client (CLI), mit dem wir den Status von Anwendungen in React basierend auf reibungslosen GraphQL-Vorgängen verwalten können. Die Lernkurve kann auch ein Nachteil dieser Umgebung sein, aber die Zeit, die für das Lernen aufgewendet wird, wird sich sicherlich auszahlen.
Beide API-Entwicklungsstandards haben ihre Vor- und Nachteile, sodass es keinen einzigen goldenen Mittelwert gibt. Für die Verwendung von GraphQL müssen wir die gesamte damit verbundene Umgebung kennen, während wir die REST-API beispielsweise über die Standard-JavaScript-Oberfläche verwenden können.