Versione | Collegamento articolo |
---|---|
AEM as a Cloud Service | Fai clic qui |
AEM 6.5 | Questo articolo |
AEM 6.4 | Fai clic qui |
La Assets L’API HTTP consente operazioni di creazione-lettura-aggiornamento-eliminazione (CRUD) sulle risorse digitali, compresi i metadati, le rappresentazioni e i commenti, nonché contenuti strutturati mediante l’utilizzo di Experience Manager Frammenti di contenuto. È esposto a /api/assets
e viene implementato come API REST. Include Supporto per i frammenti di contenuto.
Per accedere all’API:
https://[hostname]:[port]/api.json
.https://[hostname]:[server]/api/assets.json
.La risposta API è un file JSON per alcuni tipi MIME e un codice di risposta per tutti i tipi MIME. La risposta JSON è facoltativa e potrebbe non essere disponibile, ad esempio per i file PDF. Per ulteriori analisi o azioni, fai riferimento al codice di risposta.
Dopo la Ora di disattivazione, una risorsa e i relativi rendering non sono disponibili tramite il Assets interfaccia web e tramite l’API HTTP. L'API restituisce un messaggio di errore 404 se la Ora di attivazione è in futuro o Ora di disattivazione è nel passato.
L’API HTTP aggiorna le proprietà dei metadati in jcr
spazio dei nomi. Tuttavia, l’interfaccia utente di Experience Manager aggiorna le proprietà dei metadati nel dc
spazio dei nomi.
A frammento di contenuto è un tipo speciale di risorsa. Può essere utilizzato per accedere a dati strutturati, quali testi, numeri, date, ecc. Poiché esistono diverse differenze tra standard
risorse (come immagini o documenti), alcune regole aggiuntive si applicano alla gestione dei frammenti di contenuto.
Per ulteriori informazioni consulta Supporto dei frammenti di contenuto nell’API HTTP di Experience Manager Assets.
La Assets L’API HTTP espone due elementi principali, cartelle e risorse (per le risorse standard).
Inoltre, espone elementi più dettagliati per i modelli di dati personalizzati che descrivono contenuti strutturati in Frammenti di contenuto. Vedi Modelli di dati per frammenti di contenuto per ulteriori informazioni.
Le cartelle sono simili alle directory dei file system tradizionali. Sono contenitori per altre cartelle o asserzioni. Le cartelle hanno i seguenti componenti:
Entità: Le entità di una cartella sono i relativi elementi secondari, che possono essere cartelle e risorse.
Proprietà:
name
è il nome della cartella. È lo stesso dell’ultimo segmento nel percorso URL senza estensione.title
è un titolo facoltativo della cartella che può essere visualizzato al posto del suo nome.Alcune proprietà della cartella o della risorsa sono mappate a un prefisso diverso. La jcr
prefisso jcr:title
, jcr:description
e jcr:language
sono sostituiti con dc
Prefisso. Quindi nel JSON restituito, dc:title
e dc:description
contengono i valori di jcr:title
e jcr:description
, rispettivamente.
Collegamenti Le cartelle mostrano tre collegamenti:
self
: Collega a se stesso.parent
: Collega alla cartella principale.thumbnail
: (Facoltativo) collega a un'immagine miniatura della cartella.Ad Experience Manager, una risorsa contiene i seguenti elementi:
Per informazioni sugli elementi nei frammenti di contenuto, consulta Supporto dei frammenti di contenuto nell’API HTTP di Experience Manager Assets.
In Experience Manager una cartella presenta i seguenti componenti:
La Assets L’API HTTP include le seguenti funzionalità:
Per semplificare la leggibilità, gli esempi seguenti omettono la notazione cURL completa. Infatti la notazione è correlata con Riposato che è un wrapper di script per cURL
.
Prerequisiti
https://[aem_server]:[port]/system/console/configMgr
.POST
, PUT
, DELETE
.Recupera una rappresentazione Siren di una cartella esistente e delle relative entità secondarie (sottocartelle o risorse).
Richiesta: GET /api/assets/myFolder.json
Codici di risposta: I codici di risposta sono:
Risposta: La classe dell’entità restituita è una risorsa o una cartella. Le proprietà delle entità contenute sono un sottoinsieme dell'intero insieme di proprietà di ciascuna entità. Per ottenere una rappresentazione completa dell’entità, i clienti devono recuperare il contenuto dell’URL indicato dal collegamento con un rel
di self
.
Crea un nuovo sling
: OrderedFolder
nel percorso indicato. Se *
viene fornito al posto del nome di un nodo, il servlet utilizza il nome del parametro come nome del nodo. Accettati come dati di richiesta è una rappresentazione Siren della nuova cartella o un set di coppie nome-valore, codificate come application/www-form-urlencoded
o multipart
/ form
- data
, utile per creare una cartella direttamente da un modulo HTML. Inoltre, le proprietà della cartella possono essere specificate come parametri di query URL.
Una chiamata API non riesce con un 500
codice di risposta se il nodo principale del percorso fornito non esiste. Una chiamata restituisce un codice di risposta 409
se la cartella esiste già.
Parametri: name
è il nome della cartella.
Richiesta
POST /api/assets/myFolder -H"Content-Type: application/json" -d '{"class":"assetFolder","properties":{"jcr:title":"My Folder"}}'
POST /api/assets/* -F"name=myfolder" -F"jcr:title=My Folder"
Codici di risposta: I codici di risposta sono:
Posiziona il file fornito nel percorso fornito per creare una risorsa nell’archivio DAM. Se *
viene fornito al posto del nome di un nodo, il servlet utilizza il nome del parametro o il nome del file come nome del nodo.
Parametri: I parametri sono name
per il nome della risorsa e file
per il riferimento al file.
Richiesta
POST /api/assets/myFolder/myAsset.png -H"Content-Type: image/png" --data-binary "@myPicture.png"
POST /api/assets/myFolder/* -F"name=myAsset.png" -F"file=@myPicture.png"
Codici di risposta: I codici di risposta sono:
Aggiorna il file binario di una risorsa (rendering con nome originale). Un aggiornamento attiva l’esecuzione del flusso di lavoro di elaborazione delle risorse predefinito, se configurato.
Richiesta: PUT /api/assets/myfolder/myAsset.png -H"Content-Type: image/png" --data-binary @myPicture.png
Codici di risposta: I codici di risposta sono:
Aggiorna le proprietà dei metadati della risorsa. Se aggiorni una proprietà in dc:
namespace, l’API aggiorna la stessa proprietà nel jcr
spazio dei nomi. L’API non sincronizza le proprietà sotto i due namespace.
Richiesta: PUT /api/assets/myfolder/myAsset.png -H"Content-Type: application/json" -d '{"class":"asset", "properties":{"jcr:title":"My Asset"}}'
Codici di risposta: I codici di risposta sono:
dc
e jcr
namespaceIl metodo API aggiorna le proprietà dei metadati nel jcr
spazio dei nomi. Gli aggiornamenti effettuati utilizzando l'interfaccia utente modificano le proprietà dei metadati nel dc
spazio dei nomi. Per sincronizzare i valori dei metadati tra dc
e jcr
namespace, puoi creare un flusso di lavoro e configurare un Experience Manager per eseguire il flusso di lavoro al momento della modifica della risorsa. Utilizza uno script ECMA per sincronizzare le proprietà dei metadati richieste. Lo script di esempio seguente sincronizza la stringa del titolo tra dc:title
e jcr:title
.
var workflowData = workItem.getWorkflowData();
if (workflowData.getPayloadType() == "JCR_PATH")
{
var path = workflowData.getPayload().toString();
var node = workflowSession.getSession().getItem(path);
var metadataNode = node.getNode("jcr:content/metadata");
var jcrcontentNode = node.getNode("jcr:content");
if (jcrcontentNode.hasProperty("jcr:title"))
{
var jcrTitle = jcrcontentNode.getProperty("jcr:title");
metadataNode.setProperty("dc:title", jcrTitle.toString());
metadataNode.save();
}
}
Crea un nuovo rendering della risorsa per una risorsa. Se il nome del parametro della richiesta non viene fornito, il nome del file viene utilizzato come nome di rendering.
Parametri: I parametri sono name
nome del rendering e file
come riferimento di file.
Richiesta
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"
Codici di risposta: I codici di risposta sono:
Gli aggiornamenti sostituiscono rispettivamente il rendering di una risorsa con i nuovi dati binari.
Richiesta: PUT /api/assets/myfolder/myasset.png/renditions/myRendition.png -H"Content-Type: image/png" --data-binary @myRendition.png
Codici di risposta: I codici di risposta sono:
Crea un nuovo commento sulla risorsa.
Parametri: I parametri sono message
per il corpo del messaggio del commento e annotationData
per i dati Annotation in formato JSON.
Richiesta: POST /api/assets/myfolder/myasset.png/comments/* -F"message=Hello World." -F"annotationData={}"
Codici di risposta: I codici di risposta sono:
Copia una cartella o una risorsa disponibile nel percorso specificato in una nuova destinazione.
Intestazioni richieste: I parametri sono:
X-Destination
- un nuovo URI di destinazione nell’ambito della soluzione API in cui copiare la risorsa.X-Depth
- o infinity
o 0
. Utilizzo 0
copia solo la risorsa e le relative proprietà e non i relativi elementi secondari.X-Overwrite
- Utilizzo F
per evitare la sovrascrittura di una risorsa nella destinazione esistente.Richiesta: COPY /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-copy"
Codici di risposta: I codici di risposta sono:
Sposta una cartella o una risorsa nel percorso specificato in una nuova destinazione.
Intestazioni richieste: I parametri sono:
X-Destination
- un nuovo URI di destinazione nell’ambito della soluzione API in cui copiare la risorsa.X-Depth
- o infinity
o 0
. Utilizzo 0
copia solo la risorsa e le relative proprietà e non i relativi elementi secondari.X-Overwrite
- Utilizzare T
per forzare l'eliminazione di risorse esistenti o F
per evitare la sovrascrittura di una risorsa esistente.Richiesta: MOVE /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-moved"
Non utilizzare /content/dam
nell’URL. Un comando di esempio per spostare le risorse e sovrascrivere quelle esistenti è:
curl -u admin:admin -X MOVE https://[aem_server]:[port]/api/assets/source/file.png -H "X-Destination: https://[aem_server]:[port]/api/assets/destination/file.png" -H "X-Overwrite: T"
Codici di risposta: I codici di risposta sono:
Elimina una risorsa (-tree) nel percorso specificato.
Richiesta
DELETE /api/assets/myFolder
DELETE /api/assets/myFolder/myAsset.png
DELETE /api/assets/myFolder/myAsset.png/renditions/original
Codici di risposta: I codici di risposta sono:
L’API HTTP aggiorna le proprietà dei metadati in jcr
spazio dei nomi. Tuttavia, l’interfaccia utente di Experience Manager aggiorna le proprietà dei metadati nel dc
spazio dei nomi.
L’API HTTP di Assets non restituisce i metadati completi. Gli spazi dei nomi sono codificati e vengono restituiti solo questi spazi dei nomi. Per metadati completi, vedi il percorso della risorsa /jcr_content/metadata.json
.