Shopware 6 API – flexibel und performant

Lesedauer ca. 5 Minuten

Shopware 6 API-First-Ansatz

In Shopware 6 wird zur Kommunikation der Komponenten eine REST-API genutzt. Bei der Entwicklung von Shopware 6 sind so drei Endpunkte entstanden. Sync, Sales Channel und Admin. In Zukunft und ab Version 6.2 schon als Beta-Version verfügbar, soll die Sales Channel API durch die Store-API ersetzt werden. Durch diese Flexibilität ist das Frontend durch die Storefront-API komplett unabhängig vom Adminbereich mit der Admin-API und jedes kann dadurch für sich allein genutzt werden.

Dadurch ist es zum Beispiel möglich, ein komplett anderes Frontend für seine Zwecke zu nutzen und trotzdem mit dem Adminbereich von Shopware 6 zu kommunizieren. Da alle Funktionen über die API zugänglich sind, ermöglicht genau dieser Ansatz nahezu unbegrenzte Möglichkeiten zur Nutzung des Shopsystems. Egal ob du auf Daten wie beispielsweise von Alexa, Facebook, Twitter, Instagram oder auch Google Maps zugreifen willst, mit dem Shopware 6 API-First-Ansatz ist das möglich.

Was versteht man denn eigentlich unter einer API?

Der Begriff API steht für Application Programming Interface und heißt auf Deutsch so viel wie Anwendungsprogrammierschnittstelle. Wie der deutsche Name schon andeutet, erlaubt eine API-Schnittstelle Software- und Hardwarekomponenten den Zugriff auf ausgewählte Funktionen. Die API-Schnittstelle ist daher quasi die Schaltzentrale, wenn es um den Austausch von Daten geht. Die Schnittstelle selbst dient dabei als Zugangspunkt für eine andere Anwendung.

Über diesen Zugangspunkt können dann beide miteinander kommunizieren, Daten austauschen oder Befehle übergeben. Das funktioniert bei jeglicher Software auf Computer, Handy und Tablet. Auch in modernen Haushaltsgeräten wie z. B. der Waschmaschine oder dem Kühlschrank ist eine Software installiert, die über eine API mit dem Hersteller Daten austauschen kann.

api-schnittstelle--einfach-erklaert

Aber wie genau funktioniert eine API-Schnittstelle?

Prinzip – Es war einmal… Das Mittelalter

Nehmen wir einmal an, wir würden eine Zeitreise zurück ins Mittelalter machen. In meiner Geschichte herrschen zwei Könige. Der gutherzige Richard und der habgierige Heinrich. Heinrich besaß schon sehr viel Land, war dennoch mit seinem Besitz unzufrieden und wollte durch seine Habsucht auch noch über das Land von König Richard verfügen. Beide Könige lebten natürlich auf einer epischen Burg, in der sich jeweils ein Spion des anderen Königs eingeschleust hatte. Dieser versuchte, alles Wichtige mitzubekommen und so dem Widersacher diese Benachrichtigungen zu überbringen.

Die Information, dass Richard wahrscheinlich ein Angriff bevorsteht, musste also irgendwie zu ihm gelangen. Da es zu dieser Zeit jedoch weder Computer, Handys noch Tablets und andere Möglichkeiten der digitalen Kommunikation gab, war es nicht ganz so einfach, diese Nachricht von einem König zum anderen zu übertragen. Die Verständigung fand in dieser Zeit oftmals per Briefübergabe Mithilfe eines Boten statt. Der sogenannte Briefbote erhielt den Brief und ritt Tag und Nacht über Stock und Stein zum Empfänger. Dieser wiederum gab dem Briefboten bei Bedarf eine Antwort, die dann oftmals den Weg zurück zum Absender fand.

In der heutigen Zeit gibt es zwar immer noch Briefe, der Informationsfluss wurde aber zum größten Teil digitalisiert. Deswegen ist dieser Vorgang viel schneller und komfortabler geworden. Das Prinzip dennoch hat sich nicht wirklich geändert. Nur ist jetzt der Bote die API und die Könige sind einzelne Software- oder Hardware Komponenten.

api-schnittstelle-beispiel-kalenderapp

Verwendung einer API-Schnittstelle – Aktuelles Beispiel

Der Großteil von uns besitzt ein Handy mit unzähligen Apps, die miteinander kommunizieren und Daten austauschen. Ein gutes Beispiel hierfür ist z. B. die Kalenderfunktion. Du hast einen Termin, der wirklich wichtig für dich ist. Damit du auch daran denkst, speicherst du dir diesen in deinem Kalender. Kurz bevor der Termin ansteht, erinnert dich dein Handy freundlich mit einer Nachricht oder einem Klingelton daran. Jetzt ist es aber so, dass du nicht nur die Erinnerungsfunktion des Kalenders nutzen kannst, sondern auch bei Bedarf dir das Wetter angezeigt wird oder du dir auch direkt die Route zum Standort des Termins anzeigen lassen kannst.

Was genau passiert hier also? Du trägst den Termin in dein Handy ein. Der Termin wird dann an die API weitergereicht und diese wiederum kommuniziert z. B. mit einer Cloud oder Ähnliches, wo diese Daten dann irgendwo im Internet gespeichert werden. Sobald du deine App aufrufst, um den Termin abzurufen, funktioniert es genauso bloß in entgegengesetzter Richtung. In dem Fall werden die Daten auch nicht gespeichert, sondern ausgelesen.

 

Welche API Arten gibt es?

Die Public, Partner und Privat API. Der Unterschied liegt im Wesentlichen an der Zugriffseinschränkung und der Authentifizierungsart.

  • Public API – Öffentlich zugänglich
    – Lediglich wird meistens ein Token oder eine Key Authentifizierung benötigt.
  • Partner API – Spezielle Rechte oder Lizenzen nötig
    – Nicht zugänglich für die Öffentlichkeit.
  • Private API – Benutzung ausschließlich intern

 

Welche API Typen gibt es?

Diese werden in vier Klassen unterschieden. Die „Funktionsorientierte API Schnittstelle„, die nur Funktionen mit oder ohne Rückgabewert kennt. Die „Dateiorientierte API Schnittstelle„, welche sich Daten über „read“ holt und Daten über „write“ schreibt. Die viel anpassungsfähigere „Objektorientierte API„, die direkt ein Objekt enthält und zu guter Letzt die „Protokollorientierte API„. Diese Schnittstelle ist unabhängig vom Betriebssystem und der Hardware, muss aber, da das Protokoll stets neu implementiert wird, über eine interfaceorientierte Schnittstelle gekapselt werden. Hier unterscheidet man noch zwischen Protokollen wie SOAP.

 

Was ist der Unterschied zwischen REST und SOAP API?

  • SOAP – Simple Object Access Protocol
    – Ist ein Protokoll
    – funktioniert nur mit XML-Formaten
    – SOAP kann nicht auf REST zurückgreifen
  • REST – Representational State Transfer
    – Ist ein Architekturmuster
    – funktioniert mit einfachem Text, XML, HTML und JSON
    – REST kann auf SOAP zurückgreifen

 

Fazit

Durch eine API ist es ziemlich einfach, Drittsysteme an ein Shopsystem wie Shopware 6 anzubinden.  Mit einer API lassen sich auch große und komplexe Softwarepakete vereinfachen. Zudem können einzelne Funktionen in praktische Module ausgelagert werden. Dadurch wird eine klarere Struktur des Programms gewährleistet. Durch den modularen Aufbau des Codes ist die Software weniger fehleranfällig und die Wartung selbst wird auch erleichtert. Auftauchende Fehler müssen dann nur in den jeweiligen Modulen sowie die an die API übergebenen Daten geprüft werden.  Der Aufwand für Entwicklungsarbeiten einzelner Teilbereiche einer Software ist dank API überschaubarer.

Du hast eine bestehende Warenwirtschaft oder auch ein Theme, was du gerne weiterhin nutzen möchtest, ohne dabei auf den Umstieg zu Shopware 6 verzichten zu müssen?

Melde dich doch einfach bei uns und wir reden darüber.

Hi, ich bin René

Lass uns mal über dein Shopware-Projekt sprechen.

Ich berate dich ganz unverbindlich zum Thema Shopware. Ruf mich einfach an, schreib mir eine E-Mail oder hinterlasse deine Telefonnummer oder E-Mail-Adresse. Ich melde mich dann umgehend bei dir zurück. Versprochen!

    Eure Datenschutzerklärung habe ich gelesen - finde ich OK!