In questa parte del AEM Percorso di sviluppo headless, scopri come utilizzare l’API REST per accedere e aggiornare il contenuto dei frammenti di contenuto.
Nel documento precedente del percorso senza testa AEM, Come accedere ai contenuti tramite API di consegna AEM hai imparato ad accedere ai contenuti headless in AEM tramite l’API GraphQL di AEM e ora dovresti:
Questo articolo si basa su questi elementi fondamentali per comprendere come aggiornare il contenuto headless esistente in AEM tramite l’API REST.
Nella fase precedente del Percorso Headless hai appreso dell’utilizzo dell’API GraphQL di AEM per recuperare il contenuto utilizzando le query.
Allora perché è necessaria un'altra API?
L’API HTTP di Assets consente di: Leggi i contenuti, ma consente anche di: Crea, Aggiorna e Elimina contenuto : azioni non possibili con l’API GraphQL.
L’API REST di Assets è disponibile per ogni installazione predefinita di una versione di Adobe Experience Manager recente.
L’API HTTP delle risorse include:
L’implementazione corrente dell’API HTTP Assets si basa sul REST stile architettonico e consente di accedere ai contenuti (memorizzati in AEM) tramite CRUDO operazioni (Crea, Leggi, Aggiorna, Elimina).
Con queste operazioni l’API ti consente di utilizzare Adobe Experience Manager come CMS headless (Content Management System) fornendo servizi di contenuto a un’applicazione front-end JavaScript. O qualsiasi altra applicazione in grado di eseguire richieste HTTP e gestire risposte JSON. Ad esempio, le applicazioni a pagina singola (SPA), basate su framework o personalizzate, richiedono il contenuto fornito tramite un’API, spesso in formato JSON.
I frammenti di contenuto vengono utilizzati per la distribuzione headless e un frammento di contenuto è un tipo speciale di risorsa. Sono utilizzati per accedere a dati strutturati, quali testi, numeri, date, ecc.
L’API REST di Assets utilizza l’ /api/assets
e richiede il percorso della risorsa per accedervi (senza l’iniziale /content/dam
).
/content/dam/path/to/asset
/api/assets/path/to/asset
Ad esempio, per accedere a /content/dam/wknd/en/adventures/cycling-tuscany
, richiesta /api/assets/wknd/en/adventures/cycling-tuscany.json
Accedere a:
/api/assets
non l'uso .model
selettore./content/path/to/page
does richiedere l'uso .model
selettore.Il metodo HTTP determina l'operazione da eseguire:
Il corpo della richiesta e/o i parametri URL possono essere utilizzati per configurare alcune di queste operazioni; ad esempio, definisci che una cartella o una risorsa debba essere creata da un POST richiesta.
Il formato esatto delle richieste supportate è definito nella documentazione Riferimento API.
L’utilizzo può variare a seconda che utilizzi un ambiente di authoring o pubblicazione AEM e del tuo caso d’uso specifico.
Si consiglia vivamente di associare la creazione a un’istanza di authoring (e al momento non esiste alcun modo per replicare un frammento da pubblicare utilizzando questa API).
La consegna è possibile da entrambi, in quanto AEM il contenuto richiesto solo in formato JSON.
L'archiviazione e la consegna da un'istanza di authoring AEM dovrebbero essere sufficienti per le applicazioni di librerie multimediali dietro il firewall.
Per la distribuzione web live, si consiglia un’istanza di pubblicazione AEM.
La configurazione del dispatcher su AEM istanze potrebbe bloccare l’accesso a /api
.
Per ulteriori dettagli, consulta Riferimento API . In particolare, API di Adobe Experience Manager Assets - Frammenti di contenuto.
L’utilizzo avviene tramite:
GET /{cfParentPath}/{cfName}.json
Esempio:
http://<host>/api/assets/wknd/en/adventures/cycling-tuscany.json
La risposta viene serializzata JSON con il contenuto strutturato come nel frammento di contenuto. I riferimenti vengono consegnati come URL di riferimento.
Sono possibili due tipi di operazioni di lettura:
L’utilizzo avviene tramite:
POST /{cfParentPath}/{cfName}
Il corpo deve contenere una rappresentazione JSON del frammento di contenuto da creare, incluso qualsiasi contenuto iniziale da impostare sugli elementi del frammento di contenuto. È obbligatorio impostare il cq:model
e deve puntare a un modello di frammento di contenuto valido. In caso contrario si verifica un errore. È inoltre necessario aggiungere un’intestazione Content-Type
che è impostato su application/json
.
Utilizzo tramite
PUT /{cfParentPath}/{cfName}
Il corpo deve contenere una rappresentazione JSON di ciò che deve essere aggiornato per il frammento di contenuto specificato.
Può trattarsi semplicemente del titolo o della descrizione di un frammento di contenuto, di un singolo elemento o di tutti i valori e/o metadati degli elementi.
L’utilizzo avviene tramite:
DELETE /{cfParentPath}/{cfName}
Per ulteriori dettagli sull’utilizzo dell’API REST di AEM Assets, puoi fare riferimento a:
Dopo aver completato questa parte del Percorso di sviluppatori AEM Headless, devi:
Continua il tuo percorso AEM headless rivedendo il documento successivo Come andare in diretta con la tua applicazione headless dove si prende il vostro progetto AEM Headless in diretta!