In questa parte del AEM Percorso di sviluppo headless, scopri come utilizzare le query GraphQL per accedere al contenuto dei frammenti di contenuto e inviarlo all’app (consegna headless).
Alcune delle funzionalità di questa caratteristica sono disponibili nel canale prerelease. In particolare, funzionalità relative alle query persistenti.
Consulta la sezione Documentazione sul canale prerelease per informazioni su come abilitare la funzione per il tuo ambiente.
Nel documento precedente del percorso senza testa AEM, Come modellare il contenuto hai appreso le nozioni di base sulla modellazione dei contenuti in AEM, quindi ora devi capire come modellare la struttura dei contenuti, quindi realizzare tale struttura utilizzando AEM Modelli di frammento di contenuto e Frammenti di contenuto:
Questo articolo si basa su questi elementi fondamentali per comprendere come accedere al contenuto headless esistente in AEM utilizzando l’API GraphQL di AEM.
Quindi…hai tutto questo contenuto, ben strutturato (in Frammenti di contenuto) e in attesa di alimentare la tua nuova app. La domanda è: come arrivarci?
Ciò di cui hai bisogno è un modo per eseguire il targeting di contenuti specifici, seleziona ciò che ti serve e restituiscilo all’app per un’ulteriore elaborazione.
Con Adobe Experience Manager (AEM) as a Cloud Service, puoi accedere in modo selettivo ai frammenti di contenuto utilizzando l’API GraphQL di AEM per restituire solo il contenuto necessario. Ciò significa che è possibile realizzare una distribuzione headless di contenuti strutturati da utilizzare nelle applicazioni.
AEM GraphQL API è un’implementazione personalizzata, basata sulle specifiche standard dell’API GraphQL.
GraphQL è una specifica open source che fornisce:
GraphQL è un fortemente API tipizzata. Ciò significa che tutto il contenuto deve essere chiaramente strutturato e organizzato per tipo, in modo che GraphQL comprensivo accesso e modalità. I campi dati sono definiti all’interno degli schemi GraphQL, che definiscono la struttura degli oggetti contenuto.
Gli endpoint GraphQL forniscono quindi i percorsi che rispondono alle query GraphQL.
Ciò significa che l’app può selezionare in modo preciso, affidabile ed efficiente il contenuto necessario, esattamente ciò di cui hai bisogno quando viene utilizzata con AEM.
Vedi GraphQL.org e GraphQL.com.
L’API GraphQL di AEM è una versione personalizzata basata sulle specifiche standard dell’API GraphQL, appositamente configurata per consentire l’esecuzione di query (complesse) sui frammenti di contenuto.
I frammenti di contenuto vengono utilizzati, in quanto il contenuto è strutturato in base ai modelli di frammenti di contenuto . Questo soddisfa un requisito fondamentale di GraphQL.
Per accedere effettivamente a GraphQL per AEM (e il contenuto) viene utilizzato un endpoint per fornire il percorso di accesso.
Il contenuto restituito, tramite l’API GraphQL di AEM, può quindi essere utilizzato dalle tue applicazioni.
Per facilitare l’input diretto e il test delle query, è disponibile anche un’implementazione dell’interfaccia standard GraphiQL AEM GraphQL (installabile con AEM). Offre funzioni quali evidenziazione della sintassi, completamento automatico, suggerimento automatico, nonché una cronologia e una documentazione online.
L’implementazione AEM dell’API GraphQL si basa sulle librerie Java GraphQL.
I frammenti di contenuto possono essere utilizzati come base per GraphQL per AEM schemi e query come:
Questi Modelli Di Frammento Di Contenuto:
La Riferimento frammento:
È un tipo di dati specifico disponibile quando si definisce un modello di frammento di contenuto.
Fa riferimento a un altro frammento, a seconda di un modello di frammento di contenuto specifico.
Consente di creare e quindi recuperare dati strutturati.
Per facilitare la progettazione e lo sviluppo di modelli di frammenti di contenuto, puoi visualizzare in anteprima l’output JSON nell’Editor frammento di contenuto.
Prima di iniziare con le query sul contenuto è necessario:
Abilita l'endpoint
Installa GraphiQL (se necessario)
Per utilizzare effettivamente l’API GraphQL AEM in una query, possiamo utilizzare le due strutture di modello di frammento di contenuto molto semplici:
Come puoi vedere, i campi Amministratore delegato e Dipendenti fanno riferimento ai frammenti Persona.
I modelli di frammento verranno utilizzati:
Le query possono essere immesse nell'interfaccia GraphiQL. Puoi accedere all’editor delle query da:
http://localhost:4502/aem/graphiql.html
Una query semplice consiste nel restituire il nome di tutte le voci nello schema Azienda. Qui si richiede un elenco di tutti i nomi aziendali:
query {
companyList {
items {
name
}
}
}
Una query leggermente più complessa consiste nel selezionare tutte le persone che non hanno un nome di "Jobs". In questo modo verranno filtrate tutte le persone per quelle che non hanno il nome Jobs (Processi). Questo si ottiene con l'operatore EQUALS_NOT (ce ne sono molti altri):
query {
personList(filter: {
name: {
_expressions: [
{
value: "Jobs"
_operator: EQUALS_NOT
}
]
}
}) {
items {
name
firstName
}
}
}
È inoltre possibile creare query più complesse. Ad esempio, eseguire una query per tutte le aziende che hanno almeno un dipendente con il nome di "Smith". Questa query illustra il filtro per qualsiasi persona di nome "Smith", che restituisce informazioni da tutti i frammenti nidificati:
query {
companyList(filter: {
employees: {
_match: {
name: {
_expressions: [
{
value: "Smith"
}
]
}
}
}
}) {
items {
name
ceo {
name
firstName
}
employees {
name
firstName
}
}
}
}
Per informazioni dettagliate sull’utilizzo dell’API GraphQL AEM e sulla configurazione degli elementi necessari, puoi fare riferimento a:
Ora che hai imparato ad accedere ai contenuti headless e ad eseguire query tramite l’API GraphQL AEM ora puoi scopri come utilizzare l’API REST per accedere e aggiornare il contenuto dei frammenti di contenuto.