Dans cette partie du Parcours de développement découplé AEM, vous pouvez apprendre à utiliser les requêtes GraphQL pour accéder au contenu de vos fragments de contenu et le transmettre à votre application (diffusion découplée).
Dans le document précédent du parcours découplé AEM, Comment modéliser votre contenu, vous avez appris les principes de base de la modélisation de contenu dans AEM. Vous devez donc maintenant comprendre comment modéliser votre structure de contenu, puis réaliser cette structure à l’aide des modèles de fragment de contenu et des fragments de contenu AEM :
Cet article s’appuie sur ces principes de base afin que vous compreniez comment accéder à votre contenu découplé existant dans AEM en utilisant l’API AEM GraphQL.
Enfin… Vous disposez de tout ce contenu, soigneusement structuré (dans les fragments de contenu) et vous avez hâte d’en nourrir votre nouvelle application. La question est : comment faire ?
Vous avez besoin d’un moyen de cibler un contenu spécifique, de sélectionner ce dont vous avez besoin et de le renvoyer à votre application pour un traitement ultérieur.
Avec Adobe Experience Manager (AEM) as a Cloud Service, vous pouvez accéder de manière sélective à vos fragments de contenu, à l’aide de l’API AEM GraphQL, pour renvoyer uniquement le contenu dont vous avez besoin. Cela signifie que vous pouvez réaliser une diffusion découplée d’un contenu structuré pour l’utiliser dans vos applications.
L’API AEM GraphQL est une mise en œuvre personnalisée, basée sur la spécification de l’API GraphQL standard.
GraphQL est une spécification open source qui fournit les éléments suivants :
GraphQL est une API fortement typée. Cela signifie que tout le contenu doit être clairement structuré et organisé par type, de sorte que GraphQL comprenne ce à quoi accéder et comment. Les champs de données sont définis dans les schémas GraphQL qui définissent ainsi la structure de vos objets de contenu.
Les points d’entrée GraphQL fournissent ensuite les chemins qui répondent aux requêtes GraphQL.
Cela signifie que votre application peut sélectionner précisément, de manière fiable et efficace le contenu dont elle a besoin, ce qui est exactement ce dont vous avez besoin lorsqu’elle est utilisée avec AEM.
Consultez GraphQL.org et GraphQL.com.
L’API AEM GraphQL est une version personnalisée de la spécification standard de l’API GraphQL, spécialement configurée pour vous permettre d’exécuter des requêtes (complexes) sur vos fragments de contenu.
Les fragments de contenu sont utilisés, car le contenu est structuré selon des modèles de ce type de fragment. Elle répond ainsi à une des exigences de base de GraphQL.
Pour vraiment accéder à GraphQL pour AEM (et à son contenu), un point d’entrée est utilisé pour fournir le chemin d’accès.
Le contenu renvoyé, à l’aide de l’API AEM GraphQL, peut ensuite être utilisé par vos applications.
Pour vous aider à saisir et à tester directement des requêtes, une implémentation de l’interface GraphQL standard est également disponible avec GraphQL AEM (qui peut être installée avec AEM). Elle vous offre des fonctionnalités telles que la mise en surbrillance de la syntaxe, la saisie semi-automatique et la suggestion automatique, ainsi qu’un historique et une documentation en ligne.
L’implémentation de l’API AEM GraphQL repose sur les bibliothèques Java GraphQL.
Les fragments de contenu peuvent servir de base à GraphQL pour les schémas et requêtes AEM car :
Ces modèles de fragment de contenu :
La référence à un fragment :
est un type de données spécifique disponible lors de la définition d’un modèle de fragment de contenu ;
fait référence à un autre fragment, en fonction d’un modèle de fragment de contenu spécifique ;
permet de créer, puis de récupérer, des données structurées.
Pour faciliter la conception et le développement de vos modèles de fragments de contenu, vous pouvez prévisualiser la sortie JSON dans l’éditeur de fragments de contenu.
Avant de commencer à lancer des requêtes sur votre contenu, suivez les étapes suivantes :
Pour utiliser l’API AEM GraphQL dans une requête, nous pouvons utiliser les deux structures de modèle de fragment de contenu très basiques :
Comme vous pouvez le voir, les champs PDG et Employés font référence aux fragments de personne.
Les modèles de fragment seront utilisés :
Les requêtes peuvent être saisies dans l’interface GraphiQL. Vous pouvez accéder à l’éditeur de requêtes à partir de :
http://localhost:4502/aem/graphiql.html
Une requête simple consiste à renvoyer le nom de toutes les entrées du schéma Société. Vous demandez ici une liste de tous les noms de sociétés :
query {
companyList {
items {
name
}
}
}
Une requête un peu plus complexe consiste à sélectionner toutes les personnes qui n’ont pas de nom « Tâches ». Toutes les personnes qui ne portent pas le nom Tâches seront ainsi filtrées. Ce filtrage est réalisé à l’aide de l’opérateur EQUALS_NOT (il en existe bien d’autres) :
query {
personList(filter: {
name: {
_expressions: [
{
value: "Jobs"
_operator: EQUALS_NOT
}
]
}
}) {
items {
name
firstName
}
}
}
Vous pouvez également créer des requêtes plus complexes. Par exemple, faites une requête pour toutes les sociétés qui ont au moins un employé nommé « Smith ». Cette requête illustre le filtrage pour toute personne portant le nom « Smith », qui renvoie des informations provenant des fragments imbriqués :
query {
companyList(filter: {
employees: {
_match: {
name: {
_expressions: [
{
value: "Smith"
}
]
}
}
}
}) {
items {
name
ceo {
name
firstName
}
employees {
name
firstName
}
}
}
}
Pour obtenir des détails complets sur l’utilisation de l’API AEM GraphQL, ainsi que la configuration des éléments nécessaires, vous pouvez vous référer aux sections suivantes :
Maintenant que vous avez appris à accéder à votre contenu en mode découplé et à y effectuer des requêtes à l’aide de l’API AEM GraphQL, vous pouvez apprendre à utiliser l’API REST pour accéder au contenu de vos fragments de contenu et le mettre à jour.