Aktualisieren Ihres Inhalts über AEM Assets-APIs

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.

Die bisherige Entwicklung

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:

  • über ein hohes Maß an Verständnis von GraphQL verfügen,
  • verstehen, wie die AEM-GraphQL-API funktioniert,
  • einige praktische Beispielabfragen verstehen.

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.

Ziel

  • Zielgruppe: Fortgeschrittene
  • Ziele: Sie erfahren, wie Sie mit der REST-API auf die Inhalte Ihrer Inhaltsfragmente zugreifen und diese aktualisieren können:
    • Einführung in die AEM Assets-HTTP-API.
    • Einführung und Diskussion der Unterstützung von Inhaltsfragmenten in der API.
    • Veranschaulichende Details zur API.

Warum Sie die Assets-HTTP-API für Inhaltsfragmente benötigen

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?

Die Assets-HTTP-API ermöglicht nicht nur das Lesen Ihrer Inhalte, sondern auch das Erstellen, Aktualisieren und Löschen von Inhalten – Aktionen, die mit der GraphQL-API nicht möglich sind.

Die Assets-REST-API ist in jeder standardmäßigen Installation einer aktuellen Adobe Experience Manager as a Cloud Service-Version verfügbar.

Assets-HTTP-API

Die Assets-HTTP-API umfasst die:

  • Assets-REST-API
  • einschließlich Unterstützung für Inhaltsfragmente

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 diesen Oprationen ermöglicht die API es Ihnen, Adobe Experience Manager as a Cloud Service als Headless-CMS (Content-Management-System) auszuführen, indem Sie einem JavaScript-Frontend-Programm Inhalts-Services bereitstellen. 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.

Assets-HTTP-API und Inhaltsfragmente

Inhaltsfragmente werden für die Headless-Bereitstellung verwendet. Ein Inhaltsfragment ist ein spezieller Asset-Typ. Sie können für den Zugriff auf strukturierte Daten wie z. B. Texte, Zahlen und Daten verwendet werden.

Verwenden der Assets REST-API

Zugriff

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).

  • Das bedeutet, dass Sie für den Zugriff auf das Asset unter
    • /content/dam/path/to/asset
  • Folgendes anfordern müssen:
    • /api/assets/path/to/asset

Um beispielsweise auf /content/dam/wknd/en/adventures/cycling-tuscanyzuzugreifen, fordern Sie /api/assets/wknd/en/adventures/cycling-tuscany.json an.

HINWEIS

Der Zugriff über:

  • /api/assets erfordert keine Verwendung des .model-Selektors.
  • /content/path/to/page erfordert die Verwendung des .model-Selektors.

Vorgang

Die HTTP-Methode ermittelt den auszuführenden Vorgang:

  • GET: Zum Abrufen einer JSON-Darstellung eines Assets bzw. Ordners
  • POST: Zum Erstellen neuer Assets oder Ordner
  • PUT: Zum Aktualisieren der Eigenschaften eines Assets oder Ordners
  • DELETE: Zum Löschen eines Assets oder Ordners
HINWEIS

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.

VORSICHT

Die Dispatcher-Konfiguration auf AEM-Cloud-Instanzen blockiert möglicherweise den Zugriff auf /api.

HINWEIS

Weitere Informationen finden Sie in der API-Referenz. Besonders interessant: Adobe Experience Manager Assets API – Inhaltsfragmente.

Lesen/Bereitstellen

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:

  • Beim Lesen eines spezifischen Inhaltsfragments über einen Pfad gibt diese Methode die JSON-Darstellung des Inhaltsfragments zurück.
  • Beim Lesen eines Ordners mit Inhaltsfragmenten über einen Pfad gibt diese Methode die JSON-Darstellung aller Inhaltsfragmente in diesem Ordner zurück.

Erstellen

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.

Aktualisieren

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.

Löschen

Nutzung erfolgt über:

DELETE /{cfParentPath}/{cfName}

Weitere Informationen zur Verwendung der AEM Assets REST-API finden Sie unter:

  • Adobe Experience Manager Assets-HTTP-API (Zusätzliche Ressourcen)
  • Unterstützung von Inhaltsfragmenten in der AEM Assets-HTTP-API (Zusätzliche Ressourcen)

Wie geht es weiter

Nachdem Sie nun diesen Teil der AEM Headless-Entwickler-Tour abgeschlossen haben, sollten Sie über die folgenden Kenntnisse verfügen:

  • die Grundlagen der AEM Assets-HTTP-API verstehen,
  • verstehen, wie Inhaltsfragmente in dieser API unterstützt werden.

Sie sollten Ihre AEM Headless-Journey fortsetzen, indem Sie das Dokument erneut überprüfen. So legen Sie alles zusammen - Ihre App und Ihren Inhalt in AEM Headless wo Sie sich mit den Grundlagen der AEM Architektur und den Tools vertraut machen, die Sie für die Zusammenführung Ihrer Anwendung benötigen.

Zusätzliche Ressourcen

Auf dieser Seite