In diesem Teil der AEM Headless-Entwickler-Tour erfahren Sie, wie Sie mit der REST-API auf die Inhalte Ihrer Inhaltsfragmente zugreifen und diese aktualisieren können.
Im vorherigen Dokument der AEM Headless-Tour, Zugriff auf Ihre Inhalte über AEM-Bereitstellungs-APIs haben Sie erfahren, wie Sie über die AEM-GraphQL-API auf Ihre Headless-Inhalte in AEM zugreifen können. Nun sollten Sie:
Dieser Artikel baut auf diesen Grundlagen auf, sodass Sie verstehen, wie Sie Ihre vorhandenen Headless-Inhalte in AEM über die REST-API aktualisieren können.
Im vorherigen Teil der Headless-Tour haben Sie erfahren, wie Sie mit der AEM-GraphQL-API Inhalte mithilfe von Abfragen abrufen können.
Warum ist also eine weitere API erforderlich?
Mit der Assets-HTTP-API können Sie Lesen Ihren Inhalt, aber auch Erstellen, Aktualisieren und Löschen content - Aktionen, die mit der GraphQL-API nicht möglich sind.
Die Assets-REST-API ist in jeder vorkonfigurierten Installation einer aktuellen Adobe Experience Manager-Version verfügbar.
Die Assets-HTTP-API umfasst die:
Die aktuelle Implementierung der Assets-HTTP-API basiert auf dem Architekturstil REST und ermöglicht den Zugriff auf (in AEM gespeicherte) Inhalte über CRUD-Vorgänge (Create, Read, Update, Delete, also Erstellen, Lesen, Aktualisieren, Löschen).
Mit diesem Vorgang ermöglicht Ihnen die API den Betrieb von Adobe Experience Manager als Headless-CMS (Content Management System) durch Bereitstellung von Content Services für eine JavaScript-Frontend-Anwendung. Oder jedem anderen Programm, das HTTP-Anfragen ausführen und JSON-Antworten verarbeiten kann. Beispielsweise benötigen Framework-basierte oder benutzerdefinierte Single Page Applications (SPAs) die über die API bereitgestellten Inhalte häufig im JSON-Format.
Inhaltsfragmente werden für die Headless-Bereitstellung verwendet. Ein Inhaltsfragment ist ein spezieller Asset-Typ. Sie werden für den Zugriff auf strukturierte Daten wie Texte, Zahlen und Daten verwendet.
Die Assets REST-API verwendet den /api/assets
-Endpunkt und benötigt für den Zugriff auf das Asset dessen Pfad (ohne das Präfix /content/dam
).
/content/dam/path/to/asset
/api/assets/path/to/asset
Um beispielsweise auf /content/dam/wknd/en/adventures/cycling-tuscany
zuzugreifen, fordern Sie /api/assets/wknd/en/adventures/cycling-tuscany.json
an.
Der Zugriff über:
/api/assets
erfordert keine Verwendung des .model
-Selektors./content/path/to/page
erfordert die Verwendung des .model
-Selektors.Die HTTP-Methode ermittelt den auszuführenden Vorgang:
Mit dem Anfragetext und/oder den URL-Parametern können Sie einige dieser Vorgänge konfigurieren. Sie definieren damit beispielsweise, dass ein Ordner oder ein Asset über eine POST-Anfrage erstellt werden soll.
Das genaue Format der unterstützten Anforderungen ist in der API-Referenzdokumentation definiert.
Die Verwendung unterscheidet sich je nachdem, ob Sie eine AEM-Autoren- oder Veröffentlichungsumgebung zusammen mit Ihrem spezifischen Verwendungsszenario verwenden.
Es wird dringend empfohlen, dass die Erstellung in einer Autoreninstanz erfolgt (und derzeit gibt es keine Möglichkeit, ein Fragment mit dieser API für die Veröffentlichungsinstanz zu replizieren).
Die Bereitstellung ist in beiden Umgebungen möglich, da AEM angeforderte Inhalte nur im JSON-Format bereitstellt.
Das Speichern und Bereitstellen über eine AEM-Autoreninstanz sollte für Mediathekanwendungen hinter einer Firewall ausreichen.
Für die Live-Web-Bereitstellung wird eine AEM-Veröffentlichungsinstanz empfohlen.
Die Dispatcher-Konfiguration auf AEM-Instanzen blockiert möglicherweise den Zugriff auf /api
.
Weitere Informationen finden Sie in der API-Referenz. Besonders interessant: Adobe Experience Manager Assets API – Inhaltsfragmente.
Nutzung erfolgt über:
GET /{cfParentPath}/{cfName}.json
Beispiel:
http://<host>/api/assets/wknd/en/adventures/cycling-tuscany.json
Die Antwort ist serialisiertes JSON mit dem im Inhaltsfragment strukturierten Inhalt. Verweise werden als Referenz-URLs bereitgestellt.
Zwei Arten von Lesevorgängen sind möglich:
Nutzung erfolgt über:
POST /{cfParentPath}/{cfName}
Der Hauptteil muss eine JSON-Darstellung des zu erstellenden Inhaltsfragments enthalten – einschließlich des anfänglichen Inhalts, der für Inhaltsfragmentelemente festgelegt werden soll. Sie müssen die Eigenschaft cq:model
festlegen und auf ein gültiges Inhaltsfragmentmodell verweisen. Andernfalls tritt ein Fehler auf. Außerdem müssen Sie eine Kopfzeile vom Typ Content-Type
hinzufügen, für die application/json
festgelegt ist.
Nutzung erfolgt über
PUT /{cfParentPath}/{cfName}
Der Hauptteil muss eine JSON-Darstellung davon enthalten, was für das angegebene Inhaltsfragment aktualisiert werden soll.
Dies kann einfach der Titel oder die Beschreibung eines Inhaltsfragments bzw. ein einzelnes Element oder alle Elementwerte und/oder Metadaten sein.
Nutzung erfolgt über:
DELETE /{cfParentPath}/{cfName}
Weitere Informationen zur Verwendung der AEM Assets REST-API finden Sie unter:
Nachdem Sie nun diesen Teil der AEM Headless-Entwickler-Tour abgeschlossen haben, sollten Sie über die folgenden Kenntnisse verfügen:
Sie sollten Ihre AEM Headless-Tour fortsetzen, indem Sie sich das Dokument So gehen Sie mit Ihrer Headless-Anwendung live ansehen, in dem Sie mit Ihrem AEM Headless-Projekt tatsächlich live gehen.