Verwalten digitaler Assets mit der Adobe Experience Manager Assets HTTP-API assets-http-api

Version
Artikel-Link
AEM 6.5
Hier klicken
AEM as a Cloud Service
Dieser Artikel

Erste Schritte mit der AEM Assets-HTTP-API overview

Die AEM Assets-HTTP-API ermöglicht CRUD-Vorgänge (Create-Read-Update-Delete, Erstellen-Lesen-Aktualisieren-Löschen) für digitale Assets über eine REST-Schnittstelle unter /api/assets. Diese Vorgänge gelten für Asset-Metadaten, Ausgabedarstellungen und Kommentare. Dazu gehört die Unterstützung für Inhaltsfragmente.

NOTE
Eine modernisierte OpenAPI-Implementierung des API für die Verwaltung von Inhaltsfragmenten ist verfügbar. Eine vollständige Dokumentation finden Sie unter API für die Verwaltung von Inhaltsfragmenten. Es wird empfohlen, die neue OpenAPI-Implementierung zu verwenden. Die vorhandene Verwendung des Assets-HTTP-API für Inhaltsfragmente sollte in des neuen OpenAPI für die Inhaltsfragmentverwaltung migriert werden.

So greifen Sie auf die API zu:

  1. Öffnen Sie das Dokument zum API-Service unter https://[hostname]:[port]/api.json.
  2. Folgen Sie dem Link zum Assets-Service, der zu https://[hostname]:[server]/api/assets.json führt.

Die API antwortet mit einer JSON-Datei für einige MIME-Typen und einem Antwort-Code für alle MIME-Typen. Die JSON-Antwort ist optional und kann zum Beispiel für PDF-Dateien nicht verfügbar sein. Verwenden Sie den Antwort-Code für weitere Analysen oder Aktionen.

NOTE
Alle API-Aufrufe zum Hochladen oder Aktualisieren von Assets oder Binärdateien im Allgemeinen (wie Ausgabedarstellungen) werden für die Bereitstellung von Experience Manager as a Cloud Service nicht mehr unterstützt. Verwenden Sie zum Hochladen von Binärdateien stattdessen direkte binäre Upload-APIs.

Verwalten von Inhaltsfragmenten content-fragments

Ein Inhaltsfragment ist ein strukturiertes Asset, das Text, Zahlen und Datumsangaben speichert. Da es einige Unterschiede zu standard-Assets (z. B. Bildern oder Dokumenten) gibt, gelten einige zusätzliche Regeln für die Verarbeitung von Inhaltsfragmenten.

Weitere Informationen finden Sie unter Unterstützung von Inhaltsfragmenten in der Experience Manager Assets HTTP-API.

NOTE
Unter AEM-APIs für die Bereitstellung und Verwaltung strukturierter Inhalte finden Sie einen Überblick über die verschiedenen verfügbaren APIs und einen Vergleich einiger der damit verbundenen Konzepte.
Die OpenAPIs für Inhaltsfragmente und Inhaltsfragmentmodelle sind ebenfalls verfügbar.

Untersuchen des Datenmodells data-model

Die Assets-HTTP-API legt in erster Linie zwei Elemente frei: Ordner und Standard-Assets. Sie stellt zudem ausführlichere Elemente für benutzerdefinierte Datenmodelle bereit, die in Inhaltsfragmenten verwendet werden. Weitere Informationen finden Sie unter „Datenmodelle für Inhaltsfragmente“. Weitere Informationen finden Sie unter Datenmodelle für Inhaltsfragmente.

NOTE
Die OpenAPIs für Inhaltsfragmente und Inhaltsfragmentmodelle sind ebenfalls verfügbar.

Verwalten von Ordnern folders

Ordner verhalten sich wie Verzeichnisse in traditionellen Dateisystemen. Ordner können Assets, Unterordner oder beides enthalten. Ordner enthalten folgende Komponenten:

Entitäten: Zu den Entitäten eines Ordners zählen die untergeordneten Elemente, z. B. die Ordner und Assets.

Eigenschaften:

  • name: Der Name des Ordners (das letzte Segment des URL-Pfads, ohne Erweiterung).
  • title: Ein optionaler Titel, der anstelle des Ordnernamens angezeigt wird.
NOTE
Einige Eigenschaften des Ordners oder Assets sind einem anderen Präfix zugeordnet. Das jcr-Präfix von jcr:title, jcr:description und jcr:language werden mit dem dc-Präfix ersetzt. Daher enthalten im zurückgegebenen JSON dc:title und dc:description die Werte aus jcr:title bzw. jcr:description.

Links-Ordner stellen drei Links bereit:

  • self: Ein Link zum Ordner selbst.
  • parent: Ein Link zum übergeordneten Ordner.
  • thumbnail (Optional): Ein Link zu einem Ordnerminiaturbild.

Verwalten von Assets assets

In Experience Manager enthalten Assets die folgenden Elemente:

  • Eigenschaften und Metadaten Beschreibende Informationen zum Asset.
  • Binärdatei: Die ursprünglich hochgeladene Datei.
  • Ausgabedarstellungen: Mehrere konfigurierte Ausgabedarstellungen (z. B. Bilder unterschiedlicher Größe, verschiedene Videokodierungen oder aus PDF-/Adobe InDesign-Dateien extrahierte Seiten).
  • Kommentare (optional): Anmerkungen von Benutzenden.

Weitere Informationen über Elemente in Inhaltsfragmenten finden Sie unter Unterstützung von Inhaltsfragmenten in der Experience Manager Assets-HTTP-API.

NOTE
Die OpenAPIs für Inhaltsfragmente und Inhaltsfragmentmodelle sind ebenfalls verfügbar.

In Experience Manager enthält ein Ordner die folgenden Komponenten:

  • Entitäten: Die untergeordneten Elemente von Assets sind die Ausgabedarstellungen.
  • Eigenschaften.
  • Links.

Erkunden der verfügbaren API-Vorgänge available-features

Die Assets-HTTP-API bietet die folgenden Funktionen:

NOTE
Zur besseren Lesbarkeit der folgenden Beispiele wird die vollständige cURL-Notation weggelassen. Die Notation korreliert mit Resty, einem Skript-Wrapper für cURL.

Abrufen von Ordnerauflistungen retrieve-a-folder-listing

Ruft eine Siren-Darstellung eines vorhandenen Ordners und seiner untergeordneten Entitäten ab (Unterordner oder Assets).

Anfrage: GET /api/assets/myFolder.json

Antwort-Codes: Die Antwort-Codes sind:

  • 200 – OK – Erfolg.
  • 404 – NICHT GEFUNDEN – Ordner existiert nicht oder ist nicht zugänglich.
  • 500 – INTERNER SERVER-FEHLER – wenn etwas anderes schief geht.

Antwort: Die Klasse der zurückgegebenen Entität ist ein Asset oder ein Ordner. Die Eigenschaften der enthaltenen Entitäten bilden eine Teilmenge der vollständigen Eigenschaften jeder Entität. Um eine vollständige Darstellung der Entität zu erreichen, sollten Kundinnen und Kunden den Inhalt der URL abrufen, auf die der Link mit einem rel von self verweist.

Erstellen eines Ordners create-a-folder

Erstellt einen sling: OrderedFolder im festgelegten Pfad. Wenn statt eines Knotennamens ein * angegeben wird, verwendet das Servlet den Parameternamen als Knotennamen. Die Anfrage akzeptiert eine der folgenden Optionen:

  • Eine Siren-Darstellung des neuen Ordners
  • Ein Satz von Name-Wert-Paaren, kodiert als application/www-form-urlencoded oder multipart/ formdata. Diese sind nützlich, um einen Ordner direkt aus einem HTML-Formular zu erstellen.

Zusätzlich können die Eigenschaften des Ordners als URL-Abfrageparameter angegeben werden.

Wenn der übergeordnete Knoten des angegebenen Pfades nicht vorhanden ist, schlägt der API-Aufruf mit einem Antwort-Code 500 fehl. Ein Aufruf gibt einen Antwort-Code 409 zurück, wenn der Ordner bereits vorhanden ist.

Parameter: name ist der Ordnername.

Anfrage

  • POST /api/assets/myFolder -H"Content-Type: application/json" -d '{"class":"assetFolder","properties":{"title":"My Folder"}}'
  • POST /api/assets/* -F"name=myfolder" -F"title=My Folder"

Antwort-Codes: Die Antwort-Codes sind:

  • 201 – ERSTELLT – bei erfolgreicher Erstellung.
  • 409 – KONFLIKT – wenn der Ordner vorhanden ist.
  • 412 – VORBEDINGUNG FEHLGESCHLAGEN – wenn die Stammsammlung nicht gefunden oder nicht aufgerufen werden kann.
  • 500 – INTERNER SERVER-FEHLER – wenn etwas anderes schief geht.

Erstellen von Assets create-an-asset

Die Erstellung von Assets wird über diese HTTP-API nicht unterstützt. Verwenden Sie für die Asset-Erstellung die Asset-Upload-API.

Aktualisieren von Asset-Binärdateien update-asset-binary

Informationen zum Aktualisieren von Asset-Binärdateien finden Sie unter Asset-Upload. Mit der HTTP-API kann keine Asset-Binärdatei aktualisiert werden.

Aktualisieren von Metadaten eines Assets update-asset-metadata

Bei diesem Vorgang werden die Metadaten des Assets aktualisiert. Beim Aktualisieren von Eigenschaften im dc:-Namespace wird die entsprechende jcr:-Eigenschaft aktualisiert. Die API synchronisiert die Eigenschaften unter den beiden Namespaces jedoch nicht.

Anfrage: PUT /api/assets/myfolder/myAsset.png -H"Content-Type: application/json" -d '{"class":"asset", "properties":{"dc:title":"My Asset"}}'

Antwort-Codes: Die Antwort-Codes sind:

  • 200 – OK – wenn das Asset erfolgreich aktualisiert wurde.
  • 404 – NICHT GEFUNDEN – wenn das Asset nicht gefunden oder unter dem angegebenen URI nicht aufgerufen werden konnte.
  • 412 – VORBEDINGUNG FEHLGESCHLAGEN – wenn die Stammsammlung nicht gefunden oder nicht aufgerufen werden kann.
  • 500 – INTERNER SERVER-FEHLER – wenn etwas anderes schief geht.

Erstellen von Asset-Ausgabeformaten create-an-asset-rendition

Erstellt eine neue Ausgabedarstellung für ein Asset. Wenn der Name nicht als Anfrageparameter angegeben wurde, wird der Dateiname als Ausgabedarstellungsname verwendet.

Parameter: Die Parameter sind:

name: Für den Ausgabedarstellungsnamen.
file: Die Binärdatei für die Ausgabedarstellung als Referenz.

Anfrage

  • POST /api/assets/myfolder/myasset.png/renditions/web-rendition -H"Content-Type: image/png" --data-binary "@myRendition.png"
  • POST /api/assets/myfolder/myasset.png/renditions/* -F"name=web-rendition" -F"file=@myRendition.png"

Antwort-Codes

  • 201 – ERSTELLT - wenn die Ausgabedarstellung erfolgreich erstellt wurde.
  • 404 – NICHT GEFUNDEN – wenn das Asset nicht gefunden oder unter dem angegebenen URI nicht aufgerufen werden konnte.
  • 412 – VORBEDINGUNG FEHLGESCHLAGEN – wenn die Stammsammlung nicht gefunden oder nicht aufgerufen werden kann.
  • 500 – INTERNER SERVER-FEHLER – wenn etwas anderes schief geht.

Aktualisieren von Asset-Ausgabeformaten update-an-asset-rendition

Aktualisiert bzw. ersetzt eine Asset-Ausgabedarstellung durch die neuen Binärdaten.

Anfrage: PUT /api/assets/myfolder/myasset.png/renditions/myRendition.png -H"Content-Type: image/png" --data-binary @myRendition.png

Antwort-Codes: Die Antwort-Codes sind:

  • 200 – OK – wenn die Ausgabedarstellung erfolgreich aktualisiert wurde.
  • 404 – NICHT GEFUNDEN – wenn das Asset nicht gefunden oder unter dem angegebenen URI nicht aufgerufen werden konnte.
  • 412 – VORBEDINGUNG FEHLGESCHLAGEN – wenn die Stammsammlung nicht gefunden oder nicht aufgerufen werden kann.
  • 500 – INTERNER SERVER-FEHLER – wenn etwas anderes schief geht.

Hinzufügen eines Kommentars zu einem Asset create-an-asset-comment

Parameter: Die Parameter sind message für den Nachrichtentext des Kommentars und annotationData für die Anmerkungsdaten im JSON-Format.

Anfrage: POST /api/assets/myfolder/myasset.png/comments/* -F"message=Hello World." -F"annotationData={}"

Antwort-Codes: Die Antwort-Codes sind:

  • 201 – ERSTELLT - wenn der Kommentar erfolgreich erstellt wurde.
  • 404 – NICHT GEFUNDEN – wenn das Asset nicht gefunden oder unter dem angegebenen URI nicht aufgerufen werden konnte.
  • 412 – VORBEDINGUNG FEHLGESCHLAGEN – wenn die Stammsammlung nicht gefunden oder nicht aufgerufen werden kann.
  • 500 – INTERNER SERVER-FEHLER – wenn etwas anderes schief geht.

Kopieren von Ordnern oder Assets copy-a-folder-or-asset

Kopiert einen Ordner oder ein Asset in dem angegebenen Pfad in ein neues Ziel.

Anfrage-Header: Die Parameter sind:

  • X-Destination – ein neuer Ziel-URI im Bereich der API-Lösung, in den die Ressource kopiert werden soll.
  • X-Depth – entweder infinity oder 0. Mit 0 werden nur die Ressource und ihre Eigenschaften kopiert und nicht ihre untergeordneten Elemente.
  • X-Overwrite – Verwenden Sie F, um ein Überschreiben eines Assets am vorhandenen Ziel zu verhindern.

Anfrage: COPY /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-copy"

Antwort-Codes: Die Antwort-Codes sind:

  • 201 – ERSTELLT – wenn der Ordner/das Asset in ein nicht vorhandenes Ziel kopiert wurde.
  • 204 – KEIN INHALT – wenn der Ordner/das Asset in ein vorhandenes Ziel kopiert wurde.
  • 412 – VORBEDINGUNG FEHLGESCHLAGEN – wenn ein Anfrage-Header fehlt.
  • 500 – INTERNER SERVER-FEHLER – wenn etwas anderes schief geht.

Verschieben von Ordnern oder Assets move-a-folder-or-asset

Verschiebt einen Ordner oder ein Asset in dem angegebenen Pfad in ein neues Ziel.

Anfrage-Header: Die Parameter sind:

  • X-Destination – ein neuer Ziel-URI im Bereich der API-Lösung, in den die Ressource kopiert werden soll.
  • X-Depth – entweder infinity oder 0. Mit 0 werden nur die Ressource und ihre Eigenschaften kopiert und nicht ihre untergeordneten Elemente.
  • X-Overwrite – Verwenden Sie entweder T, um das Löschen einer vorhandenen Ressource zu erzwingen, oder F, um das Überschreiben einer vorhandenen Ressource zu verhindern.

Anfrage: MOVE /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-moved"

Antwort-Codes: Die Antwort-Codes sind:

  • 201 – ERSTELLT – wenn der Ordner/das Asset in ein nicht vorhandenes Ziel kopiert wurde.
  • 204 – KEIN INHALT – wenn der Ordner/das Asset in ein vorhandenes Ziel kopiert wurde.
  • 412 – VORBEDINGUNG FEHLGESCHLAGEN – wenn ein Anfrage-Header fehlt.
  • 500 – INTERNER SERVER-FEHLER – wenn etwas anderes schief geht.

Löschen eines Ordners, eines Assets oder einer Ausgabedarstellung delete-a-folder-asset-or-rendition

Löscht eine Ressource(nstruktur) im angegebenen Pfad.

Anfrage

  • DELETE /api/assets/myFolder
  • DELETE /api/assets/myFolder/myAsset.png
  • DELETE /api/assets/myFolder/myAsset.png/renditions/original

Antwort-Codes: Die Antwort-Codes sind:

  • 200 – OK – wenn der Ordner erfolgreich gelöscht wurde.
  • 412 – VORBEDINGUNG FEHLGESCHLAGEN – wenn die Stammsammlung nicht gefunden oder nicht aufgerufen werden kann.
  • 500 – INTERNER SERVER-FEHLER – wenn etwas anderes schief geht.

Befolgen Sie die Best Practices und beachten Sie die Einschränkungen tips-limitations

  • Assets und die zugehörigen Ausgabedarstellungen sind nicht mehr über die Assets-Web-Benutzeroberfläche und die HTTP-API verfügbar, wenn die Ausschaltzeit erreicht ist. Die API gibt die Fehlermeldung 404 zurück, wenn die Einschaltzeit in der Zukunft oder die Ausschaltzeit in der Vergangenheit liegt.

  • Die Assets-HTTP-API gibt nur eine Teilmenge von Metadaten zurück. Die Namespaces sind fest kodiert und nur diese Namespaces werden zurückgegeben. Vollständige Metadaten finden Sie im Asset-Pfad /jcr_content/metadata.json.

  • Einige Eigenschaften des Ordners oder Assets werden einem anderen Präfix zugeordnet, wenn sie mit APIs aktualisiert wurden. Das jcr-Präfix von jcr:title, jcr:description und jcr:language werden mit dem dc-Präfix ersetzt. Daher enthalten im zurückgegebenen JSON dc:title und dc:description die Werte aus jcr:title bzw. jcr:description.

Erkunden Sie verwandte Ressourcen

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab