Show Menu
SUJETS×

Personnalisation côté serveur

API Java

L’emplacement du package des API de communautés peut changer lors de la mise à niveau d’une version majeure vers la prochaine.

Interface SocialComponent

Les composants sociaux sont des POJO qui représentent une ressource pour une fonctionnalité de communautés AEM. Idéalement, chaque composant SocialComponent représente un type de ressource spécifique avec des objets GETters exposés qui fournissent des données au client afin que la ressource soit correctement représentée. Toute logique métier et toute logique d’affichage sont encapsulées dans SocialComponent, y compris les informations de session du visiteur du site, si nécessaire.
L’interface définit un ensemble de base de GETters nécessaires pour représenter une ressource. Il est important de noter que l’interface spécifie les méthodes Map<String, Object> getAsMap() et String toJSONString() nécessaires pour rendre les modèles Handlebars et exposer les points de fin GET JSON pour les ressources.
Toutes les classes SocialComponent doivent implémenter l’interface com.adobe.cq.social.scf.SocialComponent

Interface SocialCollectionComponent

L’interface SocialCollectionComponent étend l’interface SocialComponent pour mieux représenter les ressources qui sont des collections d’autres ressources.
Toutes les classes SocialCollectionComponent doivent implémenter l’interface com.adobe.cq.social.scf.SocialCollectionComponent

Interface SocialComponentFactory

Une fabrique SocialComponentFactory (fabrique) enregistre un composant SocialComponent avec la structure. La fabrique permet à la structure de savoir quels composants sociaux sont disponibles pour un type de ressource donné et leur priorité de classement&ast; lorsque plusieurs composants sociaux sont identifiés.
Un SocialComponentFactory est responsable de la création d’une instance du composant SocialComponent sélectionné, ce qui permet d’injecter toutes les dépendances dont le composant SocialComponent a besoin à partir de l’usine à l’aide des pratiques d’ID.
Un SocialComponentFactory est un service OSGi et a accès à d’autres services OSGi qui peuvent être transmis à SocialComponent par l’intermédiaire d’un constructeur.
Toutes les classes SocialComponentFactory doivent implémenter l’interface com.adobe.cq.social.scf.SocialComponentFactory
Une implémentation de la méthode SocialComponentFactory.getPriority() doit renvoyer la valeur la plus élevée afin que la fabrique soit utilisée pour la ressourceType donnée, comme renvoyée par getResourceType().

Interface SocialComponentFactoryManager

Le gestionnaire SocialComponentFactoryManager (responsable) gère tous les composants sociaux enregistrés dans la structure et est responsable de la sélection de SocialComponentFactory à utiliser pour une ressource donnée (resourceType). Si aucune usine n'est enregistrée pour une ressourceType spécifique, le gestionnaire renvoie une usine avec le super-type le plus proche pour la ressource donnée.
Un SocialComponentFactoryManager est un service OSGi et a accès à d’autres services OSGi qui peuvent être transmis à SocialComponent par l’intermédiaire d’un constructeur.
Un handle vers le service OSGi est obtenu en appelant com.adobe.cq.social.scf.SocialComponentFactoryManager

API HTTP - Demandes POST

PostOperation, classe

Les points de fin POST de l’API HTTP sont des classes PostOperation définies par l’implémentation de l’ SlingPostOperation interface (package org.apache.sling.servlets.post ).
L’implémentation du PostOperation point sling.post.operation de fin définit une valeur à laquelle l’opération répondra. Toutes les requêtes POST avec un paramètre:operation défini sur cette valeur seront déléguées à cette classe d’implémentation.
L’ PostOperation opérateur appelle le SocialOperation qui effectue les actions nécessaires pour l’opération.
Le PostOperation client reçoit le résultat de la SocialOperation et renvoie la réponse appropriée au client.

SocialOperation, classe

Chaque SocialOperation point de fin étend la classe AbstractSocialOperation et remplace la méthode performOperation(). Cette méthode effectue toutes les actions nécessaires pour terminer l’opération et renvoyer une erreur SocialOperationResult ou renvoyer une OperationException erreur HTTP, auquel cas un état d’erreur HTTP avec un message, s’il est disponible, est renvoyé à la place de la réponse JSON normale ou du code d’état HTTP de réussite.
L’extension AbstractSocialOperation permet de réutiliser SocialComponents pour envoyer des réponses JSON.

SocialOperationResult, classe

La SocialOperationResult classe est renvoyée à la suite de l’événement SocialOperation et est composée d’un SocialComponent code d’état HTTP et d’un message d’état HTTP.
Le SocialComponent représente la ressource affectée par l’opération.
Pour une opération de création, l’élément SocialComponent inclus dans le SocialOperationResult représente la ressource qui vient d’être créée et pour une opération de mise à jour, il représente la ressource qui a été modifiée par l’opération. Non SocialComponent renvoyé pour une opération de suppression.
Les codes d’état HTTP de réussite utilisés sont :
  • 201 pour les opérations de création
  • 200 pour les opérations de mise à jour
  • 204 pour les opérations de suppression

OperationException, classe

Une erreur OperationExcepton peut être générée lors de l’exécution d’une opération si la requête n’est pas valide ou si une autre erreur se produit, telle que des erreurs internes, des valeurs de paramètre erronées, des autorisations incorrectes, etc. Un OperationException est composé d’un code d’état HTTP et d’un message d’erreur, qui sont renvoyés au client en tant que réponse à la PostOperatoin .

Classe OperationService

La structure des composants sociaux recommande que la logique métier responsable de l’exécution de l’opération ne soit pas implémentée dans la SocialOperation classe, mais déléguée à un service OSGi. L’utilisation d’un service OSGi pour la logique métier permet à un SocialComponent point de SocialOperation fin, sur lequel agir, d’être intégré à un autre code et d’appliquer une logique métier différente.
Toutes les OperationService classes s’étendent AbstractOperationService , ce qui permet d’autres extensions pouvant se connecter à l’opération en cours. Chaque opération du service est représentée par une SocialOperation classe. La OperationExtensions classe peut être appelée pendant l'exécution de l'opération en appelant les méthodes
  • performBeforeActions() Autorise les pré-contrôles/prétraitement et validations
  • performAfterActions() Permet de modifier davantage les ressources ou d’appeler des événements personnalisés, des processus, etc.

OperationExtension, classe

OperationExtension sont des éléments de code personnalisés qui peuvent être injectés dans une opération permettant de personnaliser les opérations en fonction des besoins de l’entreprise. Les utilisateurs du composant peuvent ajouter dynamiquement et progressivement des fonctionnalités au composant. Le modèle extension/hook permet aux développeurs de se concentrer exclusivement sur les extensions elles-mêmes et élimine le besoin de copier et de remplacer des opérations et des composants entiers.

Exemple de code

Un exemple de code est disponible dans le référentiel Adobe Marketing Cloud GitHub . Recherchez des projets avec le préfixe aem-communities ou aem-scf .

Meilleures pratiques

Consultez la section Instructions de codage pour connaître les différentes directives de codage et les meilleures pratiques pour les développeurs de communautés AEM.
Voir aussi Fournisseur de ressources de stockage (SRP) pour l’UGC pour en savoir plus sur l’accès au contenu généré par l’utilisateur.