2. 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
3. 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
4. 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
5. 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
6. JTL-RPC-Protokoll
JTL-Software-GmbH, Daniel Böhmer & Christian Spoo
• Basiert auf JSON-RPC
2.0
• Arbeitet mit JSON
• Objektorientiertes Naming
der Methoden:
object.method
• Wichtigste Methoden:
• push
• pull
• delete
• statistic
Request: Response:
7. Der Connector-Einsprungpunkt
JTL-Software-GmbH, Daniel Böhmer & Christian Spoo
• Composer-Autoloader
• Konstante CONNECTOR_DIR
• Instanziierung des Endpoints
• Instanziierung des Cores
• Registrierung des Endpoints am
Core
• Core starten
8. 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
9. 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
10. 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
JTL-Software-GmbH, Daniel Böhmer & Christian Spoo
11. 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
12. 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
13. JTL-Software-GmbH, Daniel Böhmer & Christian Spoo
Fragen?
Dokumentation: http://docs.jtl-connector.de
Sourcecode: http://gitlab.jtl-software.de