In questa parte del Percorso per sviluppatori headless di AEM, scopri come utilizzare l’API REST per accedere e aggiornare il contenuto dei frammenti di contenuto.
Nel documento precedente del percorso headless di AEM, Come accedere ai contenuti utilizzando API di distribuzione di AEM hai imparato ad accedere ai contenuti headless in AEM utilizzando l’API GraphQL AEM e ora dovresti:
Questo articolo si basa su questi elementi fondamentali per comprendere come aggiornare il contenuto headless esistente in AEM utilizzando l’API REST.
Nella fase precedente del Percorso Headless, hai imparato a usare l’API GraphQL di AEM per recuperare il contenuto utilizzando le query.
Allora perché è necessaria un'altra API?
L’API HTTP di Assets consente di: Letto contenuti, ma consente anche di: Crea, Aggiorna e Elimina content: azioni che non sono possibili con l’API di GraphQL.
L’API REST di Assets è disponibile per ogni installazione predefinita di una versione di Adobe Experience Manager as a Cloud Service recente.
L’API HTTP di Assets include:
L’implementazione corrente dell’API HTTP di Assets si basa sullo stile architettonico REST e consente di accedere ai contenuti (memorizzati in AEM) utilizzando operazioni CRUD (Create (Crea), Read (Leggi), Update (Aggiorna) e Delete (Elimina)).
Con queste operazioni l’API consente di utilizzare Adobe Experience Manager as a Cloud Service come CMS (Content Management System) headless fornendo Content Services 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
endpoint 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
, richiedi /api/assets/wknd/en/adventures/cycling-tuscany.json
l’accesso a:
/api/assets
non è necessario l’uso del selettore .model
./content/path/to/page
richiede l’uso del selettore .model
.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 debbano essere create da una richiesta POST.
Il formato esatto delle richieste supportate è definito nella documentazione di riferimento API.
L’utilizzo può variare a seconda che utilizzi un ambiente di authoring o pubblicazione di AEM, insieme al 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 distribuzione è possibile da entrambi, in quanto AEM fornisce 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 istanze cloud AEM potrebbe bloccare l’accesso a /api
.
Per ulteriori dettagli, consulta la Guida di 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 la proprietà 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 è impostata su application/json
.
L’utilizzo avviene 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:
Ora che hai completato questa parte del percorso per sviluppatori headless di AEM, dovresti:
Continua il tuo percorso AEM headless rivedendo il documento successivo Come mettere tutto insieme - La tua app e il tuo contenuto in AEM headless dove acquisire familiarità con le nozioni di base e gli strumenti dell’architettura AEM necessari per mettere insieme l’applicazione.