In questa parte del Percorso per sviluppatori di AEM headless, puoi imparare a modellare la struttura del contenuto. Quindi realizza quella struttura per Adobe Experience Manager (AEM) utilizzando Modelli per frammenti di contenuto e Frammenti di contenuto, da riutilizzare tra i canali.
All’inizio Scopri lo sviluppo di CMS headless si è occupato della consegna di contenuti headless e la ragione per cui dovrebbero essere utilizzati. In seguito la Guida introduttiva a AEM headless as a Cloud Service ha descritto AEM headless nel contesto del tuo progetto.
Nel documento precedente del percorso di AEM headless, Percorso della tua prima esperienza con AEM headless, hai quindi appreso i passaggi necessari per implementare il primo progetto. Dopo averlo letto dovresti:
Questo articolo si basa su questi fondamentali in modo da capire come preparare il tuo progetto AEM headless.
La modellazione dei dati è un campo molto vasto, poiché viene utilizzata durante lo sviluppo di database relazionali. Ci sono molti libri e fonti di informazione online, disponibili.
Prenderemo in considerazione solo gli aspetti di interesse nella modellazione dei dati da utilizzare con AEM headless.
Il mondo là fuori è grande e brutto.
Forse sì, forse no, ma certamente è grande e complicato e la modellazione dei dati viene utilizzata per definire una rappresentazione semplificata di una sottosezione molto (molto) piccola, utilizzando le informazioni specifiche necessarie per un determinato scopo.
Poiché AEM ha a che fare con i contenuti, ci riferiamo alla modellazione dei dati come modellazione dei contenuti.
Esempio:
Ci sono molte scuole, ma tutte hanno varie cose in comune:
La lista può sembrare infinita anche facendo un esempio così piccolo. Ma se si vuole soltanto che l’applicazione esegua un’attività semplice, è necessario limitare le informazioni alle risorse essenziali.
Ad esempio, pubblicità di eventi speciali per tutte le scuole della zona:
Le informazioni da descrivere sono denominate Entità: fondamentalmente le “cose” di cui vogliamo memorizzare le informazioni.
Le informazioni che vogliamo memorizzare sono gli Attributi (proprietà), ad esempio Nome e Qualifiche per gli insegnanti.
Poi ci sono varie Relazioni tra le entità. Per esempio, di solito una scuola ha un solo preside e molti insegnanti (e di solito il preside è anche un insegnante).
Il processo di analisi e definizione di queste informazioni, insieme alle relazioni tra di esse, è chiamato Modellazione dei contenuti.
Spesso è necessario iniziare disegnando uno Schema concettuale che descrive le entità e le loro relazioni. Di solito questo schema è di alto livello (concettuale).
Dopo aver fissato lo schema concettuale è possibile tradurre i modelli in uno Schema logico che descrive le entità, gli attributi e le relazioni. A questo livello, è necessario esaminare attentamente le definizioni per eliminare la duplicazione e ottimizzare la progettazione.
A volte questi due passaggi vengono uniti, spesso a seconda della complessità dello scenario.
Ad esempio, sono necessarie entità separate per Head Teacher
e Teacher
o è sufficiente un attributo aggiuntivo sul modello Teacher
?
L’integrità dei dati è necessaria per garantire l’accuratezza e la coerenza dei contenuti durante l’intero ciclo di vita. Ciò include la garanzia che gli autori dei contenuti possano capire facilmente cosa archiviare e dove, per cui sono fondamentali i seguenti elementi:
La ridondanza dei dati si verifica quando le stesse informazioni vengono memorizzate due volte nella struttura del contenuto. Questo dovrebbe essere evitato in quanto può generare confusione durante la creazione del contenuto ed errori durante l’esecuzione di query; per non parlare dell’uso improprio dello spazio di archiviazione.
Ottimizzando la struttura è possibile migliorare le prestazioni, sia per la creazione di contenuti che per l’esecuzione di query.
È tutta una questione di equilibrio, ma la creazione di una struttura troppo complessa o con troppi livelli può:
creare confusione per gli autori che generano i contenuti.
penalizzare notevolmente le prestazioni se la query deve accedere a più frammenti di contenuto nidificati (a cui si fa riferimento) per recuperare il contenuto richiesto.
La Modellazione dati è un insieme di tecniche consolidate, spesso utilizzate quando si sviluppano database relazionali, quindi cosa significa Modellazione dei contenuti per AEM Headless?
Per garantire che l’applicazione possa richiedere e ricevere in modo coerente ed efficiente il contenuto richiesto da AEM, questo contenuto deve essere strutturato.
Ciò significa che l’applicazione conosce in anticipo la forma della risposta e quindi come elaborarla. Questo è molto più semplice della ricezione di contenuti in formato libero, che devono essere analizzati per determinare cosa contengono e quindi come possono essere utilizzati.
AEM utilizza Frammenti di contenuto per fornire le strutture necessarie per la distribuzione headless dei contenuti alle applicazioni.
La struttura del modello di contenuto è:
I modelli per frammenti di contenuto vengono utilizzati anche come base degli schemi GraphQL AEM, utilizzati per recuperare i contenuti. Ulteriori informazioni su questo argomento in una sessione successiva.
Le richieste di contenuti vengono effettuate utilizzando l’API GraphQL di AEM, un’implementazione personalizzata dell’API GraphQL standard. L’API GraphQL di AEM consente di eseguire query (complesse) sui Frammenti di contenuto; ogni query è basata su un tipo di modello specifico.
Il contenuto restituito può quindi essere utilizzato dalle applicazioni.
I modelli per frammenti di contenuto forniscono vari meccanismi che consentono di definire la struttura del contenuto.
Un modello per frammento di contenuto descrive un’entità.
È necessario abilitare la funzionalità Frammento di contenuto nel browser di configurazione in modo da poter creare nuovi modelli.
Il modello deve essere denominato in modo che l’autore del contenuto sappia quale modello selezionare durante la creazione di un frammento di contenuto.
All’interno di un modello:
Ad esempio:
AEM fornisce i seguenti tipi di dati per modellare il contenuto:
Due tipi di dati forniscono riferimenti a contenuti esterni a uno specifico frammento:
Riferimento contenuto
Fornisce un semplice riferimento ad altri contenuti di qualsiasi tipo.
Ad esempio, è possibile fare riferimento a un’immagine in una posizione specifica.
Riferimento frammento
Fornisce riferimenti ad altri frammenti di contenuto.
Questo tipo di riferimento viene utilizzato per creare contenuti nidificati, introducendo le relazioni necessarie per modellare il contenuto.
Il tipo di dati può essere configurato in modo da consentire agli autori di frammenti di:
All’inizio è necessario abilitare i modelli per frammenti di contenuto per il sito, questo avviene nel Browser configurazioni; sotto Strumenti -> Generale -> Browser configurazioni. Puoi scegliere di configurare la voce globale oppure creare una nuova configurazione. Esempio:
Consulta Risorse aggiuntive - Frammenti di contenuto nel Browser configurazioni
È quindi possibile creare modelli per frammenti di contenuto e definire la struttura. Questo può essere fatto in Strumenti -> Generale -> Modelli per frammenti di contenuto. Esempio:
Consulta Risorse aggiuntive - Modelli per frammenti di contenuto.
I frammenti di contenuto vengono creati in base a un modello per frammenti di contenuto. Il modello fornisce la struttura, il frammento ospita il contenuto.
Il primo passaggio per creare effettivamente il contenuto è la creazione di un frammento di contenuto. Questa operazione viene eseguita utilizzando Crea -> Frammento di contenuto nella cartella richiesta in Risorse -> File. La procedura guidata ti condurrà attraverso i passaggi.
Un frammento di contenuto si basa su un modello per frammento di contenuto specifico, selezionato come primo passaggio del processo di creazione.
Una volta creato il frammento, è possibile aprirlo nell’Editor frammento di contenuto. È possibile:
Dopo aver selezionato il modello appropriato, nell’Editor frammento di contenuto viene aperto un frammento di contenuto per la modifica:
Consultare Risorse aggiuntive - Utilizzo di frammenti di contenuto.
Per una struttura di base come esempio, vedere Struttura dei frammenti di contenuto di esempio.
Ora che hai imparato a modellare la tua struttura e a creare contenuti basandoti su di essa, il passaggio successivo è: Scoprire come utilizzare le query GraphQL per accedere e recuperare il contenuto dei frammenti di contenuto. Questo introduce la descrizione di GraphQL, quindi osserva alcune query di esempio per vedere come funzionano in pratica.