Come aggiornare i contenuti tramite le API di AEM Assets

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.

La storia finora

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:

  • Comprendere ad alto livello GraphQL.
  • Scopri come funziona l’API GraphQL di AEM.
  • Comprendere alcune domande pratiche di esempio.

Questo articolo si basa su questi elementi fondamentali per comprendere come aggiornare il contenuto headless esistente in AEM tramite l’API REST.

Obiettivo

  • Pubblico: Avanzate
  • Obiettivo: Scopri come utilizzare l’API REST per accedere e aggiornare il contenuto dei frammenti di contenuto:
    • Introduzione all’API HTTP di AEM Assets.
    • È possibile introdurre e discutere il supporto per i frammenti di contenuto nell’API.
    • Illustrare i dettagli dell’API.

Perché è necessaria l’API HTTP delle risorse per i frammenti di contenuto

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 as a Cloud Service recente.

API HTTP di Assets

L’API HTTP delle risorse include:

  • API REST di Assets
  • incluso il supporto per i frammenti di contenuto

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 as a Cloud Service 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.

API HTTP Assets e frammenti di contenuto

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.

Utilizzo dell’API REST di Assets

Accesso

L’API REST di Assets utilizza l’ /api/assets e richiede il percorso della risorsa per accedervi (senza l’iniziale /content/dam).

  • Ciò significa che per accedere alla risorsa in:
    • /content/dam/path/to/asset
  • È necessario richiedere:
    • /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

NOTA

Accedere a:

  • /api/assets non l'uso .model selettore.
  • /content/path/to/page does richiedere l'uso .model selettore.

Operazione

Il metodo HTTP determina l'operazione da eseguire:

  • GET - per recuperare una rappresentazione JSON di una risorsa o di una cartella
  • POST - per creare nuove risorse o cartelle
  • PUT - per aggiornare le proprietà di una risorsa o di una cartella
  • DELETE - per eliminare una risorsa o una cartella
NOTA

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.

ATTENZIONE

La configurazione del dispatcher su AEM istanze cloud potrebbe bloccare l’accesso a /api.

NOTA

Per ulteriori dettagli, consulta Riferimento API . In particolare, API di Adobe Experience Manager Assets - Frammenti di contenuto.

Lettura/consegna

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:

  • Quando si legge un frammento di contenuto specifico in base al percorso, viene restituita la rappresentazione JSON del frammento di contenuto.
  • Lettura di una cartella di frammenti di contenuto in base al percorso: restituisce le rappresentazioni JSON di tutti i frammenti di contenuto all’interno della cartella.

Creare

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.

Aggiorna

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.

Elimina

L’utilizzo avviene tramite:

DELETE /{cfParentPath}/{cfName}

Per ulteriori dettagli sull’utilizzo dell’API REST di AEM Assets, puoi fare riferimento a:

  • API HTTP di Adobe Experience Manager Assets (risorse aggiuntive)
  • Supporto dei frammenti di contenuto nell’API HTTP di AEM Assets (risorse aggiuntive)

Novità

Dopo aver completato questa parte del Percorso di sviluppatori AEM Headless, devi:

  • Scopri le nozioni di base dell’API HTTP di AEM Assets.
  • Scopri in che modo i frammenti di contenuto sono supportati in questa API.

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.

Risorse aggiuntive

In questa pagina