L'API HTTP Assets consente di creare-read-update-delete (CRUD) operazioni sulle risorse digitali, inclusi i metadati, sulle rappresentazioni e sui commenti, nonché di utilizzare contenuti strutturati utilizzando Experience Manager Frammenti di contenuto. È esposto in /api/assets
e viene implementato come REST API. Include il supporto di 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 affidamento sul codice di risposta.
Dopo la Ora di disattivazione, una risorsa e le relative rappresentazioni non sono disponibili tramite l'interfaccia Web Assets e tramite l'API HTTP. L'API restituisce un messaggio di errore 404 se il Tempo di attivazione è in futuro o se il Tempo di disattivazione è passato.
L'API HTTP aggiorna le proprietà dei metadati nello jcr
spazio dei nomi. Tuttavia, l'interfaccia utente del Experience Manager aggiorna le proprietà dei metadati nello spazio dei nomi dc
.
Un frammento di contenuto è un tipo speciale di risorsa. Può essere utilizzato per accedere a dati strutturati, come testi, numeri, date, ecc. Poiché le risorse standard
sono diverse (ad esempio immagini o documenti), per la gestione dei frammenti di contenuto si applicano alcune regole aggiuntive.
Per ulteriori informazioni, consultate Supporto per frammenti di contenuto nell'API HTTP delle risorse del Experience Manager .
L'API HTTP Assets espone due elementi, cartelle e risorse principali (per le risorse standard).
Inoltre, espone elementi più dettagliati per i modelli di dati personalizzati che descrivono il contenuto strutturato nei frammenti di contenuto. Per ulteriori informazioni, vedere Modelli di dati dei frammenti di contenuto.
Le cartelle sono come directory nei file system tradizionali. Sono contenitori per altre cartelle o asserzioni. Le cartelle hanno i seguenti componenti:
Entità: Le entità di una cartella sono gli elementi secondari, che possono essere cartelle e risorse.
Proprietà:
name
è il nome della cartella. Equivale all’ultimo segmento nel percorso dell’URL senza estensione.title
è un titolo facoltativo della cartella che può essere visualizzato al posto del nome.Alcune proprietà della cartella o della risorsa vengono mappate con un prefisso diverso. Il prefisso jcr
di jcr:title
, jcr:description
e jcr:language
viene sostituito con il prefisso dc
. Di conseguenza, nelle JSON restituite, dc:title
e dc:description
contengono rispettivamente i valori di jcr:title
e jcr:description
.
I collegamenti LinksFolders presentano tre collegamenti:
self
: Collegarsi a se stesso.parent
: Collegare la cartella principale.thumbnail
: (Facoltativo) collegamento alla miniatura di una cartella.In Experience Manager una risorsa contiene i seguenti elementi:
Per informazioni sugli elementi nei frammenti di contenuto, consultate Supporto dei frammenti di contenuto in API HTTP delle risorse di Experience Manager.
In Experience Manager una cartella contiene i seguenti componenti:
L'API HTTP Assets include le seguenti funzionalità:
Per semplificare la leggibilità, gli esempi seguenti omettono la notazione cURL completa. In realtà la notazione è correlata con Resty 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à figlie (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 client devono recuperare il contenuto dell'URL indicato dal collegamento con un rel
di self
.
Crea un nuovo elemento sling
: OrderedFolder
nel percorso specificato. Se viene fornito un *
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, codificati come application/www-form-urlencoded
o multipart
/ form
- data
, utili 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 codice di risposta 500
se il nodo padre 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":{"title":"My Folder"}}'
POST /api/assets/* -F"name=myfolder" -F"title=My Folder"
Codici di risposta: I codici di risposta sono:
Posizionate il file fornito nel percorso specificato per creare una risorsa nell’archivio DAM. Se viene fornito un *
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 binario di una risorsa (rappresentazione con nome originale). Un aggiornamento attiva il flusso di lavoro di elaborazione delle risorse predefinito da eseguire, 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 si aggiorna una qualsiasi proprietà nello spazio dei nomi dc:
, l'API aggiorna la stessa proprietà nello spazio dei nomi jcr
. L'API non sincronizza le proprietà sotto i due spazi dei nomi.
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
spazio dei nomiIl metodo API aggiorna le proprietà dei metadati nello spazio dei nomi jcr
. Gli aggiornamenti effettuati utilizzando l'interfaccia utente modificano le proprietà dei metadati nello spazio dei nomi dc
. Per sincronizzare i valori dei metadati tra lo spazio dei nomi dc
e jcr
, potete creare un flusso di lavoro e configurare Experience Manager in modo che esegua il flusso di lavoro al momento della modifica della risorsa. Utilizzate uno script ECMA per sincronizzare le proprietà di 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();
}
}
Create una nuova rappresentazione di risorsa per una risorsa. Se il nome del parametro della richiesta non viene fornito, il nome del file viene utilizzato come nome di rappresentazione.
Parametri: I parametri sono name
per il nome della rappresentazione e file
come riferimento del 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 una rappresentazione di 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 di annotazione 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 fornito in una nuova destinazione.
Richiedi intestazioni: I parametri sono:
X-Destination
- un nuovo URI di destinazione nell'ambito della soluzione API in cui copiare la risorsa.X-Depth
- infinity
o 0
. Utilizzando 0
vengono copiate solo la risorsa e le relative proprietà e non le relative risorse figlie.X-Overwrite
- Consente F
di 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.
Richiedi intestazioni: I parametri sono:
X-Destination
- un nuovo URI di destinazione nell'ambito della soluzione API in cui copiare la risorsa.X-Depth
- infinity
o 0
. Utilizzando 0
vengono copiate solo la risorsa e le relative proprietà e non le relative risorse figlie.X-Overwrite
- Utilizzare T
per forzare l'eliminazione di una risorsa esistente o F
per impedire 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: http://[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 nello jcr
spazio dei nomi. Tuttavia, l'interfaccia utente del Experience Manager aggiorna le proprietà dei metadati nello spazio dei nomi dc
.
L'API della risorsa non restituisce i metadati completi. Nell'API gli spazi dei nomi sono codificati e vengono restituiti solo questi. Se avete bisogno di metadati interi, guardate il percorso della risorsa /jcr_content/metadata.json
.