9 nov. 2021 15:32:39 Thomas Dumont avatar

ContentService

Définition

Un content service est un service de contenu qui a la responsabilité de produire lui-même ses pages. Chaque service de contenu dispose d'un paramètre d'appel qui permet au portail de dispatcher les requêtes sur le service.

Les ContentService du Core

Lutèce utilise par défaut les ContentServices suivants :

Service Paramètre Descrition
PageServiceid_page Service de construction et d'affichage des pages de Lutèce
ArticleServiceid_article Service de construction et d'affichage des articles de Lutèce
SearchServicequery Service de recherche de Lutèce
XPageServicepage Conteneur d'applications XPage de Lutèce

Création d'un ContentService

Déclaration

Les plugins peuvent ajouter de nouveaux ContentServices en les déclarant dans leur fichier XML de la manière suivante : :

<!-- Contents Service -->
<content-services>
    ...
    <content-service>
        <content-service-id>myContentService</content-service-id>
        <content-service-class>fr.paris.lutece.plugins.myplugin.service.MyContentService</content-service-class>
    </content-service>
    ...
</content-services>

Implémentation

Un ContentService doit étendre la classe abstraite ContentService. Les méthodes abstraites de cette classe sont les suivantes :

MéthodeDescription
getNameRenvoie le nom du service de contenu.
isInvokedDétermine à partir des paramètres de la requête HTTP, si celle-ci lui est destinée. Par exemple, le service PageService vérifiera que la requête contient le paramètre id_page .
getPageConstruit une page en focntion des paramètres de la requête et du mode.

Au travers de la classe ContentService, le service hérite de la classe AbstractCacheableService qui apporte la fonctionnalité de cache du contenu généré. Les méthodes suivantes pourront être redéfinies pour la désactiver ou la modifier (voir Gestion du cache) :

MéthodeDescription
isCacheEnableIndique si le service dispose d'un cache activé.
getCacheSizeRenvoie le nombre d'objets dans le cache.
resetCacheVide le cache du service de contenu.