This page is also available in English. Change to English page

API first - entdecke die Möglichkeiten mit unserer Core Architektur

api-grafik-new

Das Internet der Dinge bietet immense Möglichkeiten. APIs sind eng mit IoT verknüpft, da sie es ermöglichen, die Shop-Plattform sicher freizulegen, um Geräte mit Kunden, Go-to-Market-Kanälen und anderen Anwendungen in Deiner IT-Infrastruktur zu verbinden. Mit Shopware 6 wurde unsere Software auf eine völlig neue Basis gestellt, bei der wir konsequent den API-first-Ansatz verfolgt haben. Dies hat gegenüber der Vorgängerversion den Vorteil, dass alle Shop-Funktionalitäten auch über die API gesteuert werden können.

Du willst wissen, wie die API von Shopware 6 funktioniert und was Du alles damit machen kannst? Dann wird dieser Artikel dich interessieren. Shopware 6 umfasst drei Rest-APIs, jede von ihnen erfüllt einen ganz eigenen Zweck. Eines haben jedoch alle drei Rest APIs gemeinsam: Sie sind auf das HTTP-Protokoll angewiesen.

Folgende APIs gibt es:

  • Admin API 
  • Sync API
  • Sales Channel API

Was ist der Zweck der Admin API?

Der Hauptzweck der Admin-API ist die Verwaltung Deines Shops. Das ermöglicht CRUD-Operationen für alle Entitäten sowie die Verwaltung des Asset-Uploads. Die Admin-API wird von der neuen Administration, welche auf Vue.js basiert, konsequent verwendet. Du kannst alle Einstellungen und Funktionen der Administration über die Admin-API nutzen. Dadurch ist es Dir möglich, benutzerdefinierte Schnittstellen für administrative Aktivitäten zu erstellen, z.B. eine Ansicht für offene Bestellungen, die versendet werden müssen.

Gut zu wissen

Deine eigenen Entitäten erhalten automatisch einen API-Endpunkt. Dies ist möglich durch die enge Integration mit unserer DAL (Data Abstraction Layer), die CRUD-Operationen für kundenspezifische Entitäten bereitstellt, ohne neue Controller zu erstellen.

Wir haben OAuth als Authentifizierungsmethode für die Admin-API gewählt, da sie bekannt und weit verbreitet ist.

Neben typischen JSON-formatierten Antworten unterstützen wir JSON:API. Es ist eine Spezifikation zur Erstellung standardisierter APIs. Standards wie diese bieten Dir den Vorteil, dass Du nicht mit Deinen Kollegen darüber diskutieren musst, wie sie auf Fehler reagieren sollen, wie Seitenumbrüche aussehen oder wie Daten strukturiert sind.

Die Admin-API enthält viele weitere nützliche Funktionen wie Deduplizierung, Self-Discovery und eine Vielzahl von Client-Bibliotheken in verschiedenen Sprachen.

Was ist der Zweck der Sync API?

Der Sync-Endpunkt ist Teil der Admin-API und wurde für den Import und Export großer Datenmengen entwickelt. Derzeit können 300 Produkte pro Sekunde importiert werden. Lang laufende Prozesse, wie z.B. die Erstellung von Miniaturansichten, werden über Messaging Queue Services im Hintergrund ausgeführt. Die Sync-API befindet sich derzeit in einem frühen Entwicklungsstadium, sodass es noch keine Dokumentation zu diesem Thema gibt.

Gut zu wissen

Die Synchronisierungs-API hat die gleiche Berechtigung wie die Admin-API. Die Sync-API verwendet upsert zum Schreiben von Daten. Für diejenigen unter Euch, die mit upsert nicht vertraut sind: Falls Dein Objekt mit der angegebenen ID existiert, wird es aktualisiert - andernfalls wird es erstellt. Im Vergleich zu einem normalen INSERT kannst Du dir also sicher sein, dass Deine Daten nicht versehentlich dupliziert werden. .

Sync_API-1

Beispiel für Datenanforderung: JSON-Liste der Objekte, die Aktionen enthalten, die in der von Dir angegebenen Reihenfolge ausgeführt werden.

Was ist der Zweck der Sales Channel API?

Die Sales Channel API bietet gängige Storefront-Funktionen. Dieser Endpunkt bietet alle Voraussetzungen für die Anbindung Deines individuellen Shop-Frontends, POS oder eines anderen Vertriebskanals. Die Sales Channel API ermöglicht es dir, mit Shopware völlig neue Vertriebskonzepte zu realisieren.

Sales Channels sind Dein Interface, um mit der Storefront oder mit Drittanbietern wie Instagram oder Facebook zu kommunizieren. Die Sales Channel API verwendet OAuth nicht, da viele Drittanbieterdienste nicht in der Lage sind, diese Art der Authentifizierung durchzuführen. Zu diesem Zweck wird der benutzerdefinierte Header "sw-access-key" verwendet. Die meisten Funktionen sind ohne Kundenlogin zugänglich, wie z.B. die Auflistung von Produkten. Es müssen nur kundenspezifische Anforderungen authentifiziert werden.

Gut zu wissen

Obwohl Shopware im Headless-Modus eingesetzt werden kann, ist eine vollwertige, integrierte und leistungsstarke Storefront in der Plattform enthalten.

Im Gegensatz zur Admin-API ist die Sales Channel API eine stateful Schnittstelle. Jede Anforderung enthält ein Context-Token, welches in der Regel wie eine Session funktioniert. So bleiben bei mehreren Anfragen Dein Warenkorb, Dein Anmeldestatus und andere Daten, die normalerweise in der Session gespeichert sind, erhalten.

Die Sales Channel API ist viel kleiner als die Admin API, da nicht jede Entität abgefragt werden kann. Stattdessen kapselt es eine ganze Menge mehr an Geschäftslogik, die notwendig ist, um schlanke und performante Lösungen auf der API aufzubauen.

Auf Github haben wir mehrere Experimente veröffentlicht, um zu zeigen, wie einfach die Nutzung der Sales Channel API ist. Insgesamt gibt es einen OnePageShop, ein Shop-Snippet und eine Alexa-Projekt.

Fazit:

Noch nie war es so einfach, Drittsysteme an Shopware anzubinden, geschweige denn Deine eigene Storefront zu bauen. Customization spielt hier eine zentrale Rolle.

Trotz aller neuen Funktionen geht dies nicht zu Lasten der Leistung. Die aktuellen Benchmarks für die API sind bereits sehr vielversprechend und ermöglichen ERP-Integrationen die Realisierung neuer Synchronisationskonzepte.