Vous consultez actuellement l'aide de la version:

Les composants peuvent être adaptés pour générer l’exportation JSON de leur contenu en fonction d’une structure de modeleur.

Remarque :

La fonction d’exportation JSON pour les composants est disponible dans le cadre du Feature Pack des services de contenu.

Aperçu

L’exportation JSON est basée sur des modèles Sling et sur la structure d’exportation des modèles Sling (laquelle s’appuie elle-même sur des annotations Jackson).

Cela signifie que le composant doit avoir un modèle Sling pour effectuer une exportation JSON. Par conséquent, vous devez suivre ces deux étapes pour activer l’exportation JSON des composants.

Définition d’un modèle Sling pour le composant

Il faut d’abord définir un modèle Sling pour le composant.

Remarque :

Pour obtenir un exemple d’utilisation des modèles Sling, consultez l’article sur le développement d’exportateurs de modèles Sling dans AEM.

La classe de mise en œuvre des modèles Sling doit être annotée comme suit :

@Model(... adapters = {..., ComponentExporter.class})
@Exporter(name = ExporterConstants.SLING_MODEL_EXPORTER_NAME, extensions = ExporterConstants.SLING_MODEL_EXTENSION)
@JsonSerialize(as = MyComponent.class)

Cela garantit que votre composant peut être exporté seul, à l’aide du sélecteur .model et de l’extension .json.

En outre, cela indique que la classe de modèles Sling peut être adaptée dans l’interface ComponentExplorer.

Remarque :

Les annotations Jackson ne sont généralement pas spécifiées au niveau de la classe de modèles Sling, mais plutôt au niveau de l’interface de modèle. Cela permet de vérifier que l’exportation JSON est considérée comme faisant partie de l’API du composant.

Remarque :

Les classes ExporterConstants et ComponentExporter proviennent du lot com.adobe.cq.export.json.

Annotation de l’interface du modèle Sling

Pour être prise en compte par la structure de l’exportateur JSON, l’interface Modèle doit mettre en œuvre l’interface ComponentExporter (ou ContainerExporter dans le cas d’un composant de conteneur).

L’interface de modèle Sling correspondante (MyComponent) est alors marquée avec les annotations Jackson pour définir la manière dont les méthodes doivent être exportées (sérialisées).

L’interface de modèle doit être correctement annotée afin de définir les méthodes qui doivent être sérialisées. Par défaut, on attribue un numéro de série à toutes les méthodes qui respectent la convention de dénomination habituelle pour des getters. En outre, leurs noms de propriétés JSON sont naturellement dérivés des noms des getters. Cela peut être évité en utilisant @JsonIgnore ou @JsonProperty pour renommer la propriété JSON.

Exemple

Les composants principaux prennent en charge l’exportation JSON depuis la version 1.1.0 des composants principaux et peuvent être utilisés comme référence.

Pour obtenir un exemple, consultez la mise en œuvre du modèle Sling sur le composant principal de l’image et son interface annotée.

CODE SUR GITHUB

Vous pouvez trouver le code de cette page sur GitHub.

Documentation connexe

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne