CMS Java headless - Guide pour les développeurs

HeadlessCMS

Romain Gauthier

Introduction

Les Headless CMS ont gagné en popularité au cours des 7 dernières années ; cependant, beaucoup sont des produits SAAS purs qui ne peuvent pas être étendus ou fortement customisés ; les autres sont basés sur node.js. Par conséquent, les organisations qui utilisent Java comme principal langage de backend n'ont pas de solution évidente. Dans cet article, vous découvrirez les principales caractéristiques d'un bon CMS Java headless. Et, bien sûr, comment Jahia répond à ces critères. 

Modularité avec OSGi

L'attribut le plus important d'un CMS Java, qu'il soit headless ou non, est sa modularité. La modularité est ce qui permet aux développeurs Java de customiser et d'étendre le CMS. Dans le monde Java, il n'y a qu'une seule technologie qui supporte correctement la modularité : OSGi. 

Passons en revue les principales exigences d'une bonne modularité, bien couvertes par OSGi :

Modélisation du contenu

L'une des différences entre un CMS et une application classique est l'agilité requise pour gérer le modèle de données, appelé "content modeling" (modélisation du contenu) ou types de contenu. Il existe généralement deux approches pour répondre à cette exigence : 

Jahia est le deuxième type de CMS, offrant de nombreuses options pour la modélisation de contenu. Vous pouvez en savoir plus sur notre page présentant l'expérience développeur.

Extension de l'API

Une fois que vous avez un moyen de déployer du code Java - grâce à une bonne modularité - l'exigence la plus courante pour un CMS Java Headless serait de créer des nouvelles APIs sur mesure. 

Jahia utilise principalement GraphQL, et vous pouvez étendre les points d'API existants ou en créer de nouveaux. Cette capacité s'applique aux queries, aux mutations et aux souscriptions. Si vous souhaitez voir à quoi ressemble une extension GraphQL, un exemple est disponible dans notre repository GraphQL Github.

Autres "integration patterns"

Outre la personnalisation des API, un bon CMS Java Headless prendra également en charge d'autres modèles d'intégration, tels que :

Si vous voulez voir à quoi cela ressemble dans Jahia, il y a un dépôt dédié : OSGi modules samples

Open source / open core

Pouvoir accéder au code source d'un produit que l'on souhaite étendre ou personnaliser est souvent très utile. Cela facilite le débogage et la relation avec le vendeur. 

La plupart du code de Jahia est open source, et l'ensemble de notre base de code est accessible à nos clients. 

Expérience pour les utilisateurs métier

Il ne faut pas oublier qu'un bon CMS Java headless doit être un bon CMS. N'oubliez donc pas de vérifier les fonctionnalités pour les utilisateurs métier avec lesquels vous travaillez. Pour plus d'informations, lisez l'article Headless CMS - Quelles fonctionnalités pour les marketers ?

Couche de présentation / La tête

Si vous lisez ce billet et que vous cherchez un CMS headless, vous ne serez peut-être pas d'accord avec toutes les lignes ci-dessous... et ce n'est pas grave. Chez Jahia, nous pensons qu'une couche de présentation (générant du HTML à partir d'éléments de contenu) est toujours pratique et souvent essentielle. La capacité de rendre des pages HTML complètes ou des fragments HTML offre beaucoup plus de flexibilité qu'un CMS qui ne peut produire que du JSON. 

Jahia propose deux technologies de présentation (également appelées « templating ») : 

Composants complémentaires 

Un CMS seul n'est parfois pas suffisant. Si votre projet implique de travailler avec des données clients, en particulier avec une fréquence d'écriture élevée, vous ne devriez jamais stocker ces données dans un CMS. La gestion du contenu et la gestion des données clients requièrent des architectures différentes. En d'autres termes, le meilleur complément à un bon CMS est une bonne CDP (Customer Data Platform). 

Jahia contribue fortement au projet Apache Unomi. Nos clients l'utilisent pour stocker et gérer les données des formulaires, le contenu généré par les utilisateurs, les données comportementales, les préférences des visiteurs, etc.

Conclusion

En résumé, un bon CMS Java headless doit.. :

Si vous voulez en savoir plus, vous pouvez :