Die Assets HTTP-API ermöglicht die Erstellung-Lesen-Update-Löschvorgänge (CRUD) für digitale Assets, einschließlich Metadaten, Darstellungen und Kommentare, zusammen mit strukturierten Inhalten mit Inhaltsfragmenten Experience Manager. Sie wird unter /api/assets
bereitgestellt und als REST-API implementiert. Dazu gehört die Unterstützung von Inhaltsfragmenten.
So greifen Sie auf die API zu:
https://[hostname]:[port]/api.json
.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 nicht für PDF-Dateien verfügbar sein. Verwenden Sie den Antwort-Code für weitere Analysen oder Aktionen.
Nach der Ausschaltzeit sind ein Asset und seine Ausgabedarstellungen weder über die Assets-Web-Oberfläche noch über die HTTP-API verfügbar. Die API gibt die Fehlermeldung 404 zurück, wenn die Einschaltzeit in der Zukunft oder die Ausschaltzeit in der Vergangenheit liegt.
Alle API-Aufrufe zum Hochladen oder Aktualisieren von Assets oder Binärdateien im Allgemeinen (wie Ausgabedarstellungen) werden für die Implementierung von AEM as a Cloud Service nicht mehr unterstützt. Verwenden Sie zum Hochladen von Binärdateien stattdessen direkte binäre Upload-APIs.
Ein Inhaltsfragment ist ein besonderer Asset-Typ. Er kann für den Zugriff auf strukturierte Daten wie Texte, Zahlen und Daten verwendet werden. Da es bei standard
-Elementen (z. B. Bildern oder Dokumenten) mehrere Unterschiede gibt, gelten einige zusätzliche Regeln für die Verarbeitung von Inhaltsfragmenten.
Weitere Informationen finden Sie unter Unterstützung für Inhaltsfragmente in der Experience Manager Assets HTTP-API.
Die HTTP-API Assets stellt zwei Hauptelemente, Ordner und Assets (für Standard-Assets) zur Verfügung. Außerdem stellt sie ausführlichere Elemente für die benutzerdefinierten Datenmodelle bereit, die strukturierte Inhalte in Inhaltsfragmenten beschreiben. Weitere Informationen finden Sie unter Datenmodelle für Inhaltsfragmente.
Ordner verhalten sich wie Verzeichnisse in traditionellen Dateisystemen. Sie stellen Container für andere Ordner oder Assets dar. 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
ist der Name des Ordners. Dies entspricht dem letzten Segment im URL-Pfad ohne die Erweiterung.title
Ist ein optionaler Titel des Ordners, der anstelle des Namens angezeigt werden kannEinige 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
: Link zu sich selbst.parent
: Link zum übergeordneten Ordner.thumbnail
: (Optionaler) Link zu einem Ordnerminiaturbild.In Experience Manager enthalten Assets die folgenden Elemente:
Weitere Informationen über Elemente in Inhaltsfragmenten finden Sie unter Unterstützung von Inhaltsfragmenten in der Experience Manager Assets-HTTP-API.
In Experience Manager enthält ein Ordner die folgenden Komponenten:
Die HTTP-API Assets umfasst die folgenden Funktionen:
Zur besseren Lesbarkeit der folgenden Beispiele wird die vollständige cURL-Notation weggelassen. Tatsächlich korreliert die Notation mit Resty, dem Skript-Wrapper für cURL
.
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:
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 Kunden den Inhalt der URL abrufen, auf die der Link mit einem rel
von self
verweist.
Erstellt einen neuen Ordner sling
: OrderedFolder
im festgelegten Pfad. Wenn statt eines Knotennamens ein *
angegeben wird, verwendet das Servlet den Parameternamen als Knotennamen. Akzeptiert als Anfragedaten wird entweder eine Siren-Darstellung des neuen Ordners oder ein Satz von Name-Wert-Paaren, kodiert als application/www-form-urlencoded
oder multipart
/ form
- data
. Dies ist dann sinnvoll, wenn Sie einen Ordner direkt aus einem HTML-Formular 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:
Informationen zum Erstellen eines Assets finden Sie unter Hochladen von Assets. Ein Asset kann nicht mit der HTTP-API erstellt werden.
Informationen zum Aktualisieren von Asset-Binärdateien finden Sie unter Hochladen von Assets. Sie können eine Asset-Binärdatei nicht mit der HTTP-API aktualisieren.
Aktualisiert die Asset-Metadateneigenschaften. Wenn Sie eine Eigenschaft im dc:
-Namespace aktualisieren, aktualisiert die API dieselbe Eigenschaft im jcr
-Namespace. Die API synchronisiert die Eigenschaften unter den beiden Namespaces 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:
Erstellt eine neue Asset-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 Namen der Ausgabedarstellung und file
als ein Dateiverweis.
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
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:
Erstellt einen neuen Asset-Kommentar.
Parameter: Die Parameter sind message
für den Nachrichtentext des Kommentars und annotationData
für die Anmerkungsdaten im JSON-Format bestimmt.
Anfrage: POST /api/assets/myfolder/myasset.png/comments/* -F"message=Hello World." -F"annotationData={}"
Antwort-Codes: Die Antwort-Codes sind:
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:
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:
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: