Integration von Inhalten durch deklarative REST-Clients
Magnolia bietet Connector Packs zur einfachen Integration verschiedener Drittsysteme wie Commerce, Digital Asset Management (DAM) und Analytics-Plattformen. Für Integrationen, die über unsere Connector Packs hinausgehen, bieten wir Multisource an, eine äußerst nützliche Funktion, mit der Sie Magnolia mit jedem System integrieren können, das über eine REST-API verfügt. Multisource bietet auch ein UI-Framework für die Anzeige von Inhalten für Autoren in AdminCentral, wodurch die Herausforderung der Verwaltung von Silo-Inhalten überwunden wird.
Einrichten eines REST-Clients mit Multisource
Sie können Magnolia mit unserem einzigartigen Light Development anpassen. Es ermöglicht Ihnen, die Fähigkeiten von Magnolia durch YAML-Dateien zu erweitern, ohne eine einzige Zeile Java-Code zu schreiben. Mit jeder YAML-Konfigurationsdatei im Ordner restClients in Ihrem Light-Modul erstellen Sie einen deklarativen REST-Client.
Auf die gleiche Weise können Sie beliebige externe Inhaltsquellen in Magnolia konfigurieren und deren Inhalte auf Ihren Seiten und in Ihren Anwendungen verwenden. Weitere Informationen finden Sie in der Dokumentation.
Kompatible Inhaltsquellen
Standardmäßig verwenden unsere REST-Clients die RestEASY-Implementierung der Jakarta RESTful Web Services (JAX-RS), die eine große Anzahl von Inhaltsquellen unterstützt, die auf zwei Arten definiert werden können.
Der erste Definitionstyp verwendet die OpenAPI-Spezifikation. Die Konfiguration enthält die Java-Klasse und die URL, die die REST-API definiert. Dies ist die bevorzugte Methode, da die Definition kurz ist und nicht aktualisiert werden muss, wenn die Quelle ihren API-Vertrag ändert.
Klasse: info.magnolia.openapi.client.OpenApiRestClientDefinition schemaUrl: https://en.wikipedia.org/api/rest_v1/?spec
Leider entsprechen einige Inhaltsquellen nicht der OpenAPI-Spezifikation, und Sie müssen jeden Aufruf einzeln definieren, einschließlich der Parameter, um das Ergebnis zu erhalten. Im folgenden Beispiel definieren wir einen REST-Client mit einem REST-Aufruf an die URL /posts.
baseUrl: https://jsonplaceholder.typicode.com restCalls: all: method: get entityClass: com.fasterxml.jackson.databind.JsonNode path: /posts
Lesen Sie die Dokumentation, um mehr über die YAML-Konfiguration und die Authentifizierung zu erfahren.
Magnolia Multisource
With Multisource, Magnolia makes it fast and easy to connect to any external content or data source with just a few lines of configuration.
Tipps und Tricks
Testaufrufe für die REST-API
Ich empfehle die Verwendung von Tools, um sicherzustellen, dass die REST-API so funktioniert, wie Sie es erwarten. Das erste Tool, das ich empfehle, ist cUrl, ein CLI-Befehl zur Durchführung von REST-Aufrufen. Es ist sehr schnell und wird von vielen Entwicklern verwendet. HTTPie ist ähnlich, stellt die Ergebnisse aber besser dar. Das Erlernen dieser Tools erweitert Ihr Wissen über das HTTP-Protokoll und ist die Zeit wert.
Das dritte Tool, das ebenfalls weit verbreitet ist, ist Postman. Es handelt sich um eine grafische Schnittstelle für REST-Aufrufe. Es ist einfach zu bedienen und bietet die Möglichkeit, Konfigurationen zu speichern, damit Sie Tests erneut durchführen können, wenn sich die API ändert. Außerdem können Sie Konfigurationen mit Kollegen teilen.
REST-Aufrufe mit der Magnolia-App debuggen
Magnolia Multisource wird mit einem Tool zum Debuggen von Aufrufen einer REST-API geliefert. Die App in AdminCentral heißt "REST Client". Sie zeigt die in Ihrer Instanz definierten REST-Clients an und ermöglicht es Ihnen, REST-Aufrufe zu initiieren, um die Ergebnisse zu überprüfen. Bei Bedarf können Sie die Aufrufparameter ändern.
Auf der Registerkarte "Debug" können Sie einen REST-Client auswählen und seine Live-Aktivität überwachen, d. h. Sie müssen die App geöffnet lassen, während Sie die Aufrufe tätigen. Das Tool zeigt Details der Anfrage und der Antwort an. Debug ist auch nützlich, um zu prüfen, wie die Aufrufe erfolgen, um sie mit dem Befehl cUrl zu reproduzieren.
Melden Sie sich bei unserer Demo-Instanz an, um die REST-Client-Schnittstelle in Aktion zu sehen.
Verwenden Sie den richtigen Antworttyp
Wenn Sie nicht die OpenAPI-Spezifikation verwenden, definieren Sie die Eigenschaft entityClass für jeden REST-Aufruf. Wenn Sie zum Beispiel auf dem Client arbeiten, möchten Sie das Ergebnis in java.lang.String konvertieren und Javascript das JSON-Objekt parsen lassen. Oder Sie möchten das Ergebnis einem POJO zuordnen, das Sie in Ihrer Anwendung definiert haben.
Wenn Sie den REST-Client mit UI-Komponenten verwenden, ist die EntityClass com.fasterxml.jackson.databind.JsonNode. Wenn Sie den Client direkt verwenden, können Sie eine andere EntityClass definieren, zum Beispiel Java-Listen, Strings oder Maps. Die Jackson-Bibliothek wird versuchen, die Antwort in die definierte EntityClass zu konvertieren.
Es kann auch nützlich sein, verschiedene REST-Aufrufe mit unterschiedlichen Antworttypen für verschiedene Zwecke zu haben.
Schlussfolgerung
Die meisten Unternehmen speichern Inhalte an verschiedenen Orten, was für Autoren und Front-End-Entwickler eine Herausforderung darstellt. Um verstreute Inhalte in Magnolia zu nutzen, macht Multisource die Integration von Drittanbieter-Inhaltsquellen viel einfacher.
Auch wenn Sie kein Java-Entwickler sind, können Sie Magnolias Light Development nutzen, um REST-Clients für APIs von Drittanbietern einzurichten und deren Inhalte über die AdminCentral UI in Ihren Seiten und Anwendungen zu verwenden. Wenn Sie die oben genannten Tipps befolgen, sollten Sie eine Integration im Handumdrehen konfigurieren können.