13
JTL-Connector: Anbindung weiterer Shopsysteme Ein Workshop mit Daniel Böhmer & Christian Spoo

JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Plattformen

Embed Size (px)

Citation preview

Page 1: JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Plattformen

JTL-Connector:Anbindung weiterer

ShopsystemeEin Workshop mit Daniel Böhmer & Christian Spoo

Page 2: JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Plattformen

JTL-Software-GmbH, Daniel Böhmer & Christian Spoo

Ablauf des Workshops• Einführung in JTL-Connector• Technologische Grundlagen• Protokoll und Ablauf des Abgleichs• Architektur• API• Debugging

• Vorstellung des Example-Connectors• Fragerunde• Abschluss

Dauer: ca. 30 Min.

Page 3: JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Plattformen

JTL-Software-GmbH, Daniel Böhmer & Christian Spoo

Einführung in JTL-Connector• Modulare, erweiterbare und offene

Schnittstelle• JTL-Wawi hat batteries included• JTL stellt eine Reihe offizieller Anbindungen

bereit• Dokumentation der API ist online, aber noch

WIP

Page 4: JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Plattformen

JTL-Software-GmbH, Daniel Böhmer & Christian Spoo

Technologische Grundlagen• Basiert auf

objektorientierem PHP nach 5.4-Sprachstandard

• Composer zur Verwaltung von Abhängigkeiten

• JSON-RPC-Protokoll zur Wawi

• Event-System auf Basis des Symfony-EventDispatchers

Page 5: JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Plattformen

JTL-Software-GmbH, Daniel Böhmer & Christian Spoo

Architektur• Der PHP-basierte Connector ist

zweigeteilt• Basisbibliothek jtlconnector• shopspezifischer Endpoint

• JTL-Wawi spricht das JTL-RPC-Protokoll• Request-Paket in der Applikation

(Deserialisierung, Aufbereitung, Linking)

• Aufruf des Controllers im Endpoint• Endpoint-Resultat an Applikation• Result gelangt durch das Response-

Paket zur JTL-Wawi

Page 6: JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Plattformen

JTL-Software-GmbH, Daniel Böhmer & Christian Spoo

JTL-RPC-Protokoll• Basiert auf JSON-RPC

2.0• Arbeitet mit JSON• Objektorientiertes

Naming der Methoden:

object.method

• Wichtigste Methoden:• push• pull• delete• statistic

Request: Response:

Page 7: JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Plattformen

JTL-Software-GmbH, Daniel Böhmer & Christian Spoo

Der Connector-Einsprungpunkt• Composer-Autoloader• Konstante CONNECTOR_DIR• Instanziierung des Endpoints• Instanziierung des Cores• Registrierung des Endpoints am

Core• Core starten

Page 8: JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Plattformen

Die Controller-Klasse• Initialisierung des

Endpoints mit benötigten Services

• Implementierung von „canHandle“ und „handle“

• Best practise sind Controller, die wie die RPC Methoden heißen• Z.b. Product, Category

Page 9: JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Plattformen

Plugins für JTL-Connector• Ereignisgesteuerter

Aufruf durch Connector-Core

• Automatischer Plugin-Loader und Verwendung von Dependency Injection (DI)

• Plugin ist losgelöst vom eigentlichen Endpoints

• Zugriff auf alle Daten, die JTL-Wawi übermittelt

Page 10: JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Plattformen

JTL-Software-GmbH, Daniel Böhmer & Christian Spoo

Example-Connector• Zweck: Veranschaulichung der

Arbeitsweise von JTL-Connector und dem Ablauf

• Daten werden in einer SQLite3-Datenbank gespeichert, die den „Shop“ simuliert

• unterstützt die komplette Funktionalität von JTL-Connector

Page 11: JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Plattformen

Debugging – serverseitig• JTL-Connector schreibt eigene

Logdateien• gesamte RPC-Kommunikation• Session-Handling• endpointspezifische Logs• weitere Kanäle können angelegt

werden• Loglevel konfigurierbar• Logdateien werden mit Datum

versehen und automatisch rotiert• Erweitertes Logging im Developer-

Modus

Page 12: JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Plattformen

Debugging – clientseitig• Connector-Tester

• zeigt direkte RPC-Ausgabe (JSON, Baumstruktur, Response-Zeit)

• alle verfügbaren RPC-Calls können abgesetzt werden

• nützlich, wenn der eigene Endpoint noch am Anfang steht, oder zur Fehlersuche

Page 13: JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Plattformen

JTL-Software-GmbH, Daniel Böhmer & Christian Spoo

Fragen?

Dokumentation: http://docs.jtl-connector.deSourcecode: http://gitlab.jtl-software.de