JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Plattformen
-
Upload
jtl-software -
Category
Software
-
view
665 -
download
8
Transcript of JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Plattformen
JTL-Connector:Anbindung weiterer
ShopsystemeEin Workshop mit Daniel Böhmer & Christian Spoo
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.
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
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
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
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:
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
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
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
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
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
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
JTL-Software-GmbH, Daniel Böhmer & Christian Spoo
Fragen?
Dokumentation: http://docs.jtl-connector.deSourcecode: http://gitlab.jtl-software.de