Fulfillment Wissen - In Anwendung
Die REST-Schnittstelle
Immer wieder befinden sich Unternehmen auf der Suche nach der optimale Schnittstelle zwischen Webshop und Warenwirtschaft. Wie bindet man die Software ideal an, wie gelingt die reibungslose Verknüpfung mit dem Fulfillment-Partner. Dieser wichtigen Frage gehen wir in Kürze detailliert nach und widmen dem ein ganzes Whitepaper.
Vorab gewissermaßen als Teaser schon mal unser Blick auf eine der möglichen Optionen, die REST-Schnittstelle. Immer wieder ist die Rede von dieser Schnittstelle, und gerade heute kommt dieser Lösung eine wesentliche Bedeutung zu. Umso wichtiger, sie zu verstehen. Was also versteht man unter REST?
Diese Schnittstellen wurden speziell für verteilte Systeme, insbesondere für WebServices geschaffen. Hierbei wird mittels Schnittstelle der Übergang vom aktuellen Zustand zum nächsten Zustand sichergestellt und dieser erfolgt durch den Transfer der Daten, die den nächsten Zustand repräsentieren.
Aus eben diesem Prinzip leitet sich das Akronym „REST“ ab: Es steht für „Representational State Transfer“ und es gilt zu beachten, dass es sich hierbei um keine Programmiersprache handelt und keine Software, die ausgeführt werden kann. REST ist ein Architekturmodell, welches effektiv einer Abstraktion der Struktur und des Verhaltens des World Wide Web entspricht.
Die Architektur einer REST-API beruht dabei auf sechs Prinzipien, welche beschreiben, wie vernetzte Ressourcen im Web, beispielsweise in einer Cloud, definiert und adressiert werden. Das Prinzip der Zustandslosigkeit ist dabei essenziell für eine REST-API. Dieses besagt, dass jede REST Nachricht alle Informationen enthält, die zum Verständnis dieser Nachricht notwendig sind. Wie bei all diesen Prinzipien ist keineswegs festgelegt, wie diese implementiert werden müssen. Im Einzelnen sind dies:
1. Client-Server-Architektur Kern dieses Prinzips ist die Trennung von Problemen. Und die Abspaltung der Benutzeroberfläche von der Datenspeicherung verbessert die Portabilität der Benutzerschnittstelle über mehrere Plattformen hinweg. Zudem können so Komponenten unabhängig voneinander entwickelt werden. Bei der REST-Schnittstelle müssen sich dabei alle Ressourcen mit Hilfe eines eindeutigen Unique Ressource Identifiers (kurz URI) identifizieren lassen.
2. Zustandslosigkeit Das zweite wichtige Prinzip von REST besteht darin, dass die Kommunikation immer zustandslos sein muss. Bei REST gibt es also keine mit Sessions und Cookies realisierten Benutzersitzungen. Das bedeutet im Umkehrschluss, dass bei jeder Anfrage sämtliche erforderlichen Informationen erneut mitgesendet werden. Der Vorteil (und Hauptgrund) der Zustandslosigkeit von REST-Services ist die einfache Skalierbarkeit: Gibt es keine Sessions, lassen sich mehrere Anfragen eines Clients problemlos auf verschiedene Server verteilen.
3. Caching Um die Netzwerkeffizienz zu verbessern, können Clients vom Server gesendete Antworten auch speichern und bei gleichartigen Anfragen später erneut verwenden. Dies erlaubt responsivere Anwendungen mit höherer Effizienz und Skalierbarkeit.
4. Einheitliche Schnittstelle Damit die Komponenten einer REST API miteinander kommunizieren können, müssen sie den gleichen Regeln folgen. Ziel dessen ist eine vereinfachte Architektur und eine erhöhte Sichtbarkeit von Interaktionen.
5. Layered System REST setzt auf mehrschichtige, hierarchische Systeme („Layered System“) – jede Komponente kann ausschließlich jeweils direkt angrenzende Schichten sehen und nicht über die unmittelbare Ebene hinaus. Somit hat etwa ein Client, der sich mit einer Zwischenkomponente wie einem Proxy verbindet, keine Kenntnis darüber, was dahinter liegt. Dies ermöglicht, dass Komponenten unabhängig voneinander und somit leicht austauschbar oder erweiterbar sind.
6. Code-on-Demand Zusätzlicher Code kann heruntergeladen werden, um die Client-Funktionalität zu erweitern. Als optionales Prinzip kann diese Bedingung in bestimmten Kontexten jedoch deaktiviert sein.
Auf die Praxis übertragen, bedeutet dies am Beispiel eines fiktiven Unternehmens, das bereits auf eine REST-Schnittstelle setzt, folgendes: Klickt der Kunde auf einen Artikel im WebShop, wird der aktuelle Artikelbestand in Echtzeit von der Warenwirtschaft abgefragt und der Kunde kann diesen so bei der Bestellung einsehen. Dank der REST-Schnittstelle wird hierbei vermieden, dass Artikelbestände zwischen zwei Systemen synchronisiert werden müssen.
Klickt der Kunde ferner auf „kostenpflichtig bestellen“, stellt REST sicher, dass sämtliche relevanten Informationen sowohl an die Warenwirtschaft zur Auslieferung der Waren übertragen werden als auch zum Payment-Dienstleister, der seinerseits in Echtzeit bestätigt, ob die angegebene Kreditkarte gültig und das Konto gedeckt ist. Erst nach einem „Go“ durch den Payment-Dienstleister erhält die Warenwirtschaft die Information, dass dieser Auftrag weiter prozessiert werden kann. Dabei liefert die Warenwirtschaft den Status der Verarbeitung direkt an den WebShop und der Kunde kann dies über sein Kundenkonto verfolgen.
Ferner wird der gewünschte Versanddienstleister durch die Kommunikation der Warenwirtschaft mit einem Multi-Carrier-Dienstleister in der Cloud über REST übermittelt und das entsprechende Versandlabel produziert. Der Kunde erhält bei Versand seiner Ware eine E-Mail mit den detaillierten Trackinginformationen und kann den Weg seiner Bestellung bis zum Eintreffen direkt nachverfolgen. Die Warenwirtschaft setzt den Versandauftrag in allen beteiligten Systemen auf „erledigt“. Damit ist der gesamte Vorgang abgeschlossen.