Comment mettre à jour votre contenu à l’aide des API AEM Assets

Dans cette partie du parcours de développement AEM découplé, découvrez comment utiliser l’API REST pour accéder au contenu de vos fragments de contenu et le mettre à jour.

Un peu d’histoire…

Dans le document précédent du parcours découplé AEM, Comment accéder à votre contenu à l’aide des API de diffusion AEM, vous avez appris à accéder à votre contenu en mode découplé via l’API AEM GraphQL et vous devriez maintenant :

  • Connaître GraphQL dans ses grandes lignes.
  • Comprendre le fonctionnement de l’API AEM GraphQL.
  • Connaître quelques exemples pratiques de requêtes.

Cet article s’appuie sur ces principes de base afin que vous compreniez comment accéder au contenu découplé existant dans AEM à l’aide de l’API AEM.

Objectif

  • Audience : Niveau avancé
  • Objectif : Découvrir comment utiliser l’API REST pour accéder au contenu de vos fragments de contenu et le mettre à jour :
    • Présentation de l’API HTTP d’AEM Assets.
    • Présentation et description de la prise en charge des fragments de contenu dans l’API.
    • Illustration de détails de l’API.

Pourquoi avez-vous besoin de l’API HTTP Assets pour le fragment de contenu

À l’étape précédente du parcours en mode découplé, vous avez appris à utiliser l’API AEM GraphQL afin de récupérer votre contenu à l’aide de requêtes.

Alors pourquoi une autre API est-elle nécessaire ?

L’API HTTP Assets vous permet de Lire votre contenu, mais elle vous permet également de Créer, Mettre à jour et Supprimer le contenu – des actions qui sont impossibles avec l’API GraphQL.

L’API REST Assets est disponible pour chaque installation prête à l’emploi d’une version récente d’Adobe Experience Manager as a Cloud Service.

API HTTP Assets

L’API HTTP Assets englobe :

  • l’API REST Assets,
  • y compris la prise en charge des fragments de contenu

L’implémentation actuelle de l’API HTTP Assets repose sur le style architectural REST et permet d’accéder au contenu (stocké dans AEM) via les opérations CRUD (Create, Read, Update, Delete) pour créer, lire, mettre à jour, supprimer.

Grâce à ces opérations, l’API permet d’utiliser Adobe Experience Manager as a Cloud Service en tant que système de gestion de contenu (CMS) sans interface utilisateur en fournissant des services de contenu à une application frontale JavaScript. Ou toute autre application pouvant exécuter des requêtes HTTP et gérer les réponses JSON. Par exemple, les applications sur une seule page (SPA), basées sur la structure ou personnalisées, nécessitent du contenu fourni via l’API HTTP, souvent au format JSON.

API HTTP Assets et fragments de contenu

Les fragments de contenu sont utilisés pour une diffusion en mode découplé. Un fragment de contenu est un type spécial de ressource. Ils permettent d’accéder aux données structurées, telles que les textes, les nombres, les dates, etc.

Utilisation de l’API REST Assets

Accès

L’API REST Assets utilise le point d’entrée /api/assets et nécessite le chemin d’accès de la ressource pour y accéder (sans /content/dam en préfixe).

  • Cela signifie que pour accéder à la ressource à l’adresse suivante :
    • /content/dam/path/to/asset
  • Vous devez demander :
    • /api/assets/path/to/asset

Par exemple, pour accéder à /content/dam/wknd/en/adventures/cycling-tuscany, demandez /api/assets/wknd/en/adventures/cycling-tuscany.json

REMARQUE

Accès via :

  • /api/assets ne nécessite pas l’utilisation du sélecteur .model.
  • /content/path/to/page nécessite l’utilisation du sélecteur .model.

Opération

La méthode HTTP détermine l’opération à exécuter :

  • GET : pour récupérer une représentation JSON d’une ressource ou d’un dossier
  • POST : pour créer des ressources ou des dossiers
  • PUT : pour mettre à jour les propriétés d’une ressource ou d’un dossier
  • DELETE : pour supprimer une ressource ou un dossier
REMARQUE

Le corps de la requête et/ou les paramètres URL peuvent être utilisés pour configurer certaines de ces opérations ; par exemple, spécifier qu’un dossier ou une ressource doivent être créés par une requête POST.

Le format exact des requêtes prises en charge est défini dans la documentation Référence d’API.

L’utilisation peut varier selon que vous utilisez un environnement d’auteur ou de publication AEM dans votre cas d’utilisation spécifique.

  • Il est vivement recommandé de lier la création à une instance d’auteur (et il n’existe actuellement aucun moyen de répliquer un fragment pour publier à l’aide de cette API).

  • La diffusion est possible à partir des deux à la fois, car AEM traite le contenu demandé au format JSON uniquement.

    • Le stockage et la diffusion à partir d’une instance d’auteur AEM suffisent normalement pour les applications de bibliothèque multimédia opérant derrière le pare-feu.

    • Pour une diffusion web en direct, une instance de publication AEM est recommandée.

ATTENTION

La configuration du dispatcher sur les instances cloud AEM peut bloquer l’accès à /api.

REMARQUE

Pour plus d’informations, voir la Référence d’API. En particulier, API Adobe Experience Manager Assets – Fragments de contenu.

Lecture/Diffusion

Mode d’utilisation :

GET /{cfParentPath}/{cfName}.json

Par exemple :

http://<host>/api/assets/wknd/en/adventures/cycling-tuscany.json

La réponse est un JSON sérialisé avec le contenu structuré comme dans le fragment de contenu. Les références sont diffusées en tant qu’URL de référence.

Deux types d’opérations de lecture sont possibles :

  • Lecture d’un fragment de contenu spécifique par chemin, ce qui renvoie la représentation JSON du fragment de contenu.
  • Lecture d’un dossier de fragments de contenu par chemin : cela renvoie les représentations JSON de tous les fragments de contenu du dossier.

Créer

Mode d’utilisation :

POST /{cfParentPath}/{cfName}

Le corps doit contenir une représentation JSON du fragment de contenu à créer, notamment tout contenu initial devant être défini sur les éléments de fragment de contenu. Il est obligatoire de définir la propriété cq:model, qui doit pointer vers un modèle de fragment de contenu valide. Sans cela, il se produira une erreur. Il est également nécessaire d’ajouter un en-tête Content-Type, défini sur application/json.

Mettre à jour

Mode d’utilisation :

PUT /{cfParentPath}/{cfName}

Le corps doit contenir une représentation JSON de ce qui doit être mis à jour pour le fragment de contenu donné.

Il peut simplement s’agir du titre ou de la description d’un fragment de contenu, d’un élément unique ou de toutes les valeurs et/ou métadonnées d’un élément.

Supprimer

Mode d’utilisation :

DELETE /{cfParentPath}/{cfName}

Pour plus d’informations sur l’utilisation de l’API REST d’AEM Assets, vous pouvez accéder aux éléments suivants :

  • API HTTP Assets d’Adobe Experience Manager (ressources supplémentaires)
  • Prise en charge des fragments de contenu dans l’API HTTP AEM Assets (ressources supplémentaires)

Et après ?

Maintenant que vous avez terminé cette partie du parcours de développement découplé AEM, vous devriez pouvoir :

  • Comprendre les principes de base de l’API HTTP d’AEM Assets.
  • Comprendre comment les fragments de contenu sont pris en charge dans cette API.

Poursuivez votre parcours dans AEM découplé en consultant le document Comment mettre en ligne votre application en mode découplé dans lequel vous mettez en ligne votre projet AEM découplé.

Ressources supplémentaires

Sur cette page