Requisiti

Conoscenza dei prerequisiti

  • Informazioni su AEM Mobile
  • Conoscenza della creazione e della pubblicazione di contenuto tramite il portale on-demand
  • Esperienza con On-Demand Services API

Prodotti richiesti

  • AEM Mobile
  • Accesso a On-Demand Services API
  • Contenuto condiviso

Introduzione a Shared Content

Le On-Demand Services API (in precedenza denominate “Content Producer Service API”) consentono a uno sviluppatore di terze parti di integrarsi con i servizi on-demand. Questo servizio consente di eseguire le seguenti operazioni:

  • gestire gli articoli
  • gestire le raccolte
  • gestire i prodotti
  • gestire le notifiche push

Se desiderate pubblicare più articoli basati su HTML, potete utilizzare l'API Shared Content per creare un bundle di contenuto che viene condiviso tra questi articoli. In questo articolo viene illustrato come utilizzare Shared Content.

In AEM Mobile, è possibile pubblicare singoli articoli. Ogni articolo viene identificato dal relativo article_name. Con l'installazione di Shared Content, più articoli basati su HTML possono utilizzare gli stessi file CSS e Javascript.

Senza Shared Content, ogni articolo HTML dovrà includere file CSS e JS specifici.

In questo esempio, i file “css/style.css” e “js/main.js” vengono duplicati in ogni articolo, causando un sovraccarico. Se si utilizza Shared Content, questi file possono essere aggiunti a un'entità sharedContent a cui viene fatto riferimento in ciascun articolo.

Quando si utilizza Shared Content, i file condivisi vengono archiviati in una singola entità a cui fanno riferimento più articoli.

Informazioni sul contenuto condiviso dinamico

Con la release AEM Mobile 2017.2 (6 febbraio 2017) il contenuto condiviso dinamico consente di aggiornare il contenuto condiviso senza dover aggiornare gli articoli che fanno riferimento a tale contenuto. Prima di questa release, l'utilizzo dell'entità sharedContent richiedeva di aggiornare sia il contenuto condiviso che gli articoli che collegavano a tale contenuto. Quindi, agli utenti dell'app veniva richiesto di toccare “Aggiorna” per ottenere gli aggiornamenti. Con questa release, potete utilizzare la nuova entità dynamicSharedContent per caricare il contenuto condiviso. Quando aggiornate il contenuto dinamico condiviso e lo pubblicate, le modifiche vengono effettuate automaticamente a tutti gli articoli di riferimento. Non dovrete più aggiornare gli articoli di riferimento e gli utenti non dovranno più toccare il prompt Aggiorna.

Sono supportati entrambi i flussi di lavoro, sia sharedContent che dynamicSharedContent. Questa sezione fa riferimento all'utilizzo del contenuto condiviso dinamico. Se invece desiderate utilizzare il flusso di lavoro del contenuto condiviso precedente, sostituite sharedContent con dynamicSharedContent laddove appropriato.

 

Utilizzo di Shared Content

  1. Create un'entità articolo per ogni articolo.

  2. Caricate i contenuti dell'articolo (in formato compresso con manifest.xml) nel servizio di inserimento. Per informazioni dettagliate, consultate Creazione di articoli HTML per AEM Mobile.

  3. Create l'entità di contenuto condiviso. Il corpo della richiesta deve contenere gli attributi di metadati dell'entità standard. Negli esempi di seguito, il campo “sc_one” è il nome dell'entità dynamicSharedContent.

    PUT /publication/<projectID>/dynamicSharedContent/sc_one
  4. Ottenete contentUrl dall'entità creata risultante (parte della risposta).

    {
        …
        "_links": {
            …
            "contentUrl": "/publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion1>/"
        }
    }
  5. Caricate le risorse condivise in contentUrl.

    Esempi:

    PUT /publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion1>/css/style.css
    PUT /publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion1>/js/main.js
  6. Convalidate (inviate) i contenuti dell'entità dynamicSharedContent.

    PUT /publication/<projectId>/dynamicSharedContent/sc_one;version=<entVersion>/contents
  7. Ottenete la versione aggiornata di contentUrl dall'entità convalidata (parte della risposta).

    {
        …
        "_links": {
            …
            "contentUrl": "/publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion2>/"
        }
    }
  8. Nell'articolo, caricate una risorsa di collegamento simbolica che faccia riferimento a contentUrl condiviso.  Negli esempi seguenti, il campo “article_one” è relativo al nome dell'entità articolo, mentre il campo “shared” è il nome della cartella che conterrà i contenuti condivisi. Innanzitutto, ottenete la versione di entità dynamicSharedContent più aggiornata con una chiamata GET. Quindi, caricate il collegamento nella risorsa condivisa.

    PUT /publication/<projectId>/article/article_one/contents;contentVersion=<cVersion3>/dynamicShared
    Content-Type:  application/vnd.adobe.symboliclink+json
    {"href": "/publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion2>/"}
  9. Configurate riferimenti aggiuntivi a un'altra entità di contenuto condiviso nello stesso articolo.

    PUT /publication/<projectId>/article/article_one/contents;contentVersion=<cVersion3>/fonts
    Content-Type:  application/vnd.adobe.symboliclink+json
    {"href": "/publication/<projectId>/dynamicSharedContent/sc_two/contents;contentVersion=<cVersion2>/"}

    L'intestazione Content-Type identifica questa risorsa come collegamento simbolico, il nome della risorsa (“article_one” nell'esempio) identifica l'origine del collegamento simbolico e i contenuti della risorsa caricata identificano la destinazione.

  10. Convalidate (inviate) i contenuti dell'entità di riferimento.

     

    PUT /publication/<projectId>/article/article_one;version=<entVersion>/contents

    Le risorse di contenuto all'interno di article_one ora possono fare riferimento al contenuto nell'entità dynamicSharedContent semplicemente mediante il prefisso “shared” (per sc_one) e “fonts” (per sc_two). L'entità dynamicSharedContent è ubicata una directory al di sopra dell'articolo HTML.

    Il contenuto HTML di article_one farà riferimento a javascript e css nel modo indicato di seguito:

    <script src="../shared/js/logic.js"></script>
    <link rel="stylesheet" type="text/css" href="../shared/css/style.css">

    È possibile rendere disponibili i font nel modo indicato di seguito:

    @font-face {
      font-family: "myFirstFont";
      src: "url(../fonts/Exotic_Regular.woff");
    }
  11. Pubblicate l'entità dynamicSharedContent per le app non di verifica preliminare o attivate la verifica preliminare per le app abilitate alla verifica preliminare, per estendere le modifiche per l'entità dynamicSharedContent a tutti gli articoli di riferimento.

    PUT /job
    {
        "workflowType": "publish",
        "entity": {
            "/publication/dynamicSharedContent/sc_one;version=<entVersion>"
        }
    }

Migrazione del contenuto condiviso esistente al contenuto condiviso dinamico

Le nuove funzionalità di contenuto condiviso non influiscono sui flussi di lavoro del contenuto condiviso esistente. Se desiderate avvalervi del contenuto condiviso dinamico, dovete modificare il contenuto condiviso esistente per abilitare il nuovo flusso di lavoro dinamico.

  1. Create una nuova entità dynamicSharedContent.

  2. Aggiungete tutte le risorse dall'entità sharedContent precedente alla nuova entità dynamicSharedContent e convalidate i contenuti dell'entità.

  3. Aggiornate i file di collegamento simbolico (symlink) in ciascun articolo in modo che puntino a una nuova entità dynamicSharedContent nella versione convalidata.

  4. Visualizzate l'anteprima (verifica preliminare) del contenuto del progetto. Il contenuto dinamico deve essere disponibile negli articoli.

  5. Le nuove funzionalità di contenuto condiviso non influiscono sui flussi di lavoro del contenuto condiviso esistente. Se desiderate avvalervi del contenuto condiviso dinamico, dovete modificare il contenuto condiviso esistente per abilitare il nuovo flusso di lavoro dinamico.

    Quando siete pronti a pubblicare, pubblicate il contenuto condiviso dinamico. Quindi pubblicate gli articoli che fanno riferimento al contenuto condiviso.

    Per aggiornare il contenuto condiviso, aggiungere o modificare le risorse nel contenuto dinamico condiviso e convalidare l'entità. Visualizzate l'anteprima degli articoli che fanno riferimento al contenuto condiviso, quindi pubblicate il contenuto condiviso dinamico. Le modifiche verranno applicate agli articoli di riferimento.

Nota:

al momento, non è possibile annullare la pubblicazione del contenuto condiviso. Fino a quando questa opzione è supportata, una soluzione consiste nel rimuovere tutto il contenuto dei file dal contenuto condiviso dinamico e nel ripubblicarlo. Potete anche rimuovere il symlink a questo contenuto condiviso dinamico dagli articoli di riferimento o dai banner dinamici.

Considerazioni relative a Shared Content

Quando utilizzate contenuto condiviso negli articoli, il visualizzatore deve scaricare l'entità di contenuto condiviso completa per eseguirne il rendering nell'articolo. Prendete in considerazione la creazione di più entità di contenuto condiviso invece di utilizzare una sola entità di grandi dimensioni che contiene tutto il contenuto condiviso.

Il percorso in cui è disponibile il contenuto condiviso dipende dalla creazione del collegamento simbolico come illustrato nei passaggi 8 e 9. Nel passaggio 8, si fa riferimento a sc_one nel percorso “shared”. Nel passaggio 9, si fa riferimento a sc_two nel percorso “fonts”. È possibile confrontare le modalità di utilizzo del contenuto condiviso utilizzando i collegamenti simbolici in un sistema operativo Unix.

Il contenuto condiviso può essere gestito solo tramite On-Demand Services API. Al momento, non è disponibile un'interfaccia utente nel portale dei servizi on-demand per gestire il contenuto condiviso.

On-Demand Services API include gli esempi per sharedContent. Consultate la cartella /sharedContent.

Questo prodotto è concesso in licenza in base alla licenza di Attribuzione-Non commerciale-Condividi allo stesso modo 3.0 Unported di Creative Commons.  I post su Twitter™ e Facebook non sono coperti dai termini di Creative Commons.

Note legali   |   Informativa sulla privacy online