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

Zusätzliche Ressourcen

Auf dieser Seite