SlideShare ist ein Scribd-Unternehmen logo
1 von 72
Downloaden Sie, um offline zu lesen
CRÉER	UNE	FOIS,	PUBLIER	
PARTOUT	GRÂCE	AU	
DÉCOUPLAGE	D’APPLICATIONS	
ET	À LA	MISE	EN	PLACE	D’API
Julien	Dubreuil
Consultant	Drupal	spécialisé	dans	les	
problématiques	Back-end,	industrialisation
et	qualité
SOMMAIRE
1. Retour sur 2014 et l’avenir du web à
cette époque
2. Ce que cela signifie de découpler son
site
3. Comment mettre en place une telle
stratégie avec Drupal
4. Faire du content-as-a-service
5. Quels projets pour une telle
architecture
Julien	Dubreuil
Contributeur	Drupal	depuis	2009
Co-organisateur	du	groupe	utilisateurs
Drupal	à	Paris	depuis	2011
@juliendubreuil
Juliendubreuil.fr
Consultant	Drupal	spécialisé	dans	les	
problématiques	Back-end,	industrialisation
et	qualité
2	ans	en	tant	qu’indépendant
3	ans	chez	Commerce	Guys
3	ans	au	Figaro
2014, CE QUE L’AVENIR
NOUS RÉSERVAIT
1.
Applications	monolithiques
VS	
Application	micro-services
Drupal	et	WP	peuvent alors être	
considérés	comme	des	solutions	
monolithiques
• Themingcompliqué	
• Courbe	d’apprentissage	trop	grande
• Manque	de	ressources	disponibles
• Frustration	des	Dev	Front
Des	Webhooks qui	permettent	à	
l’application	consommant	l’API	
de	réagir	en	cas	de	modification
Une	API	REST	qui	
retourne	bien	
souvent	du	JSON
Des	contenus	accessibles	
via	une	API	REST
Un	CMS	dans	le	cloud	du	
stockage	des	contenus
Une	interface	web	
pour	l’édition	de	
contenus Content-as-
a-Service
(CaaS)
La	tendance des	solutions	CaaS
Pour	les	équipes
techniques
Pour	les
développeurs
Pour	les
entreprises
Séparer	les	problématiques	
Back-end	et	Front-end
Permet	aux	équipes	de	
travailler	en	parallèle.	
Pas	de	perte	de	temps	à	
monter	en	compétence	
Utilisation	des	dernières	
technos	et	techniques
Mutualiser	et	réutiliser	leurs	
contenus
Publier	instantanément	sur	
plusieurs	plateformes	en	
même	temps
• Pas	de	front-end,	ce	n’est	qu’un	endroit	
pour	stocker	du	contenu
• Limité	en	terme	d’outils	d’édition
• Très	peu	adaptable	aux	besoins,	voire	non	
modifiable
• Délaisse	toutes	les	problématiques	de	
présentation	aux	développeurs	front-end
Pour	le	
meilleur
et	pour	
le	pire
TECHNIQUEMENT,
DÉCOUPLER SON
SITE CA VEUT DIRE
QUOI ?
2.
• Un	CMS	utilisé	comme	gestionnaire	de	contenus	
• Des	contenus	sont	accessibles	via	une	API	REST
• Une	API	REST	retourne	bien	souvent	du	JSON
• Une	interface	web	pour	l’édition	de	contenu
Back-end
• Une	interface	graphique	développée	de	A-Z	
• Bâti	avec	des	technologies	Javascript
modernes
• Une	consommation	de	contenus	via	des	
webservices,
• Une	transformation	de	JSON	en	HTML
Front-end
Serveur Client
Requête
Réponse
Couplé,	Découplé
&	Co
« Couplé »	ou	« Classic »,	est	l’utilisation	normale	de	
l’outil.	Drupal	est chargé	de	générér du	HTML	qu’il
renverra au	client
L’autre	option	est	le	mode	découplé,	ou	Drupal	n’est	
chargé	que	de	mettre	à	disposition	 des	données	et	
l’équipe	front-end	 de	les	consommer	et	afficher.
Il	existe	une	alternative,	un	mixte	entre	les	deux	
appellée « Progressively Decouple ».	Dans	ce	cas,	
Drupal	est	utilisé	comme	outil	de	génération	de	
contenu	pour	l’équipe	front-end	 tout	en	étant	
capable	de	fournir	de	la	donnée	 via	une	API	pour	
des	éléments	de	pages.
Avantages du	Headless
• Flexibilité	et	contrôle	total	pour	les	devs Fronts	(plus	limité	par	Drupal	et	
Twig)
• Le	front	devient	plus	facilement	interchangeable.	
• Pas	besoin	de	migrer	des	contenus	pour	changer	le	front.
• Permet	de	faire	travailler	l’équipe	Back-end	en	parallèle	de	l’équipe	Front-
end
• Moins	de	dépendance	envers	les	spécialistes	Drupal
• Un	endroit	unique	de	contribution	de	contenus
Inconvénients	du	Headless
• Les	fonctionnalités	«out-of-the-box »	deviennent	(content	preview,	action	
links,	in	place-enditing)
• Il	faudra	réinventer	la	roue	(password reset)
• D’un	site	web	on	passe	alors	à	un	écosystème	(coût	de	maintenance,	coût	
de	hosting,	coût	d’évolution)
• Une	application	composée	de	plusieurs	couches	augmente	aussi	la	
complexité	de	celle-ci	(debug plus	compliqué.	fort	besoin	de	loguer	les	
échanges)
Inconvénients	du	Headless
• Une	séparation	stricte	entre	les	données	et	l’affichage	doit	être	faite	et	
perdurer	(une	modification	de	structure	dans	le	Back-end	peut	avoir	des	
conséquences	sur	l’une	des	applications	front)
• Potentiellement	besoin	d’une	équipe	technique	plus	importante	que	dans	
une	approche	classique.
• Bye	bye	aux	fonctionnalités	de	SEO	native
EN PRATIQUE,
DÉCOUPLER DRUPAL,
ÇA DONNE QUOI ?
3.
Drupal	7
• Services https://www.drupal.org/project/Services
• Views	Datasource https://www.drupal.org/project/views_datasource
• RESTWS	 https://www.drupal.org/project/restws
• RESTful https://www.drupal.org/project/RESTful
• Code	custom
Drupal	8
Intègre	désormais	plusieurs	modules	permettant	de	mettre	en	œuvre	une	API	
REST
• REST	module
• Serializer
• HAL
• Basic	Authentification
REST	UI
La	communauté a crée un	module	REST	UI	permettant de	réaliser les	mêmes
actions	qu’un	développeur	devrait	écrire	directement	depuis	une	UI
vous	permettant	alors	de	choisir	les	méthodes	disponibles	(GET,	POST,	
PATCH,	DELETE),	les	formats	(json,	xml)	renvoyés,	et	les	méthodes	
d'authentification	(cookie	ou	http	si	le	module	est	activé)	supportées
Views
Permet	de	mettre	à	disposition	des	ressources	et	collections	de	ressources	
Avantages
• Simple	à	utiliser
• Facile	de	créer	un	nouveau	endpoint
Inconvénients
• Peut-être	se	retrouver	limité	
• Pas	des	plus	performant	pour	des	requêtes	complexes
REST	avec	les	modules	core
• Web	services	RESTful traditionnel,	centré	sur	les	
ressources	et	des	collections.
• Permet	plusieurs	formats:	JSON,	HAL+JSON
• Peut	exposer	autre	chose	que	des	entités
• Peut	être	étendu	au	moyen	de	plugins
Relaxed	web	services
Améliore les	modules	core	de	D8
• Traduction
• Révisions
• Fichiers attachés
• Gère les	réferences UUID	
Permet de	faire	offline.	Inspired	de	CouchDB,	le	module	
permet de	créer une approche "offline-first”	en	utilisant une
librairie telle-que PouchDB	ou Hood.ie.
Json API
• Un	module	contrib en	accord	avec	le	standard	
http://jsonapi.org/
• Expose	toutes	les	ressources	(entitées) contenues	dans	
Drupal.	
• Permet	de	filtre/trier/paginer/	 des	collections
• Injecte	les	chemins	des	entités	liées	lors	de	la	réponse	
• Permet	de	réduire	le	nombre	de	requêtes	HTTP	dues	à	
la	connaissance	des	relations
• Contenu	plus	lisible
Json API	Extras
• Permet d’activer ou de	désactiver certaines ressources
• Surcharge	le	nom	des	ressources.	Exemple:	article	à la	place	de	node--article.
• Surcharge	le	chemin d’accès aux	ressources:		/jsonapi/node/article	 devient
/api/articles
• Permet de	désactiver certains champs
• Permet d’améliorer le	rendu des	champs,	comme pour	les	champs	date
Nested	data
Données	plus	
propres	et	
plus	lisibles
GraphQL
• Expose	toutes	les	entités	Drupal	selon	le	standard	
graphql.org	standard.	(non-RESTful)
• Permet	de	filtre/trier/paginer/	 des	collections
• Injecte	les	chemins	des	entités	liées	lors	de	la	réponse	
• Réduit	le	nombre	de	requêtes	http
• Dès	l’activation	du	module	toutes	les	données	sont	
accessibles	(contrôle	d’accès	réalisé	par	Entity Access	API)
http://example.com/jsonapi/node/article?sort=created&filter[status][value]=1
API	Namespace
Bundle
Type	d’entités Filtres
Reservoir
• Une	distribution	signée	Acquia
• Un	dépôt	de	contenus,	configuré	pour	
fonctionner	avec	JSON	API	et	OAuth2.
• Fonctionnelle	dès	son	installation
• 4	axes	:	Contenus,	API,	Modélisation	de	contenu,	
Contrôle	d’accès
Contenta	CMS
• Une	distribution	orienté	API-first
• Maintenu	par	une	communauté	de	contributeur
• Starter	kit	pour	mettre	en	place	une	architecture	
découplé
• Ce	veut,	simple	et	ne	nécessitant	que	peut	de	
configuration	et	sans	avoir	besoin	de	connaître	Drupal	
• Dispose	d’exemples	Elm,	React,	Ember,	Ionic,	Angular
METTRE EN PLACE
UNE STRATEGIE
CONTENT-AS-A-
SERVICE
4.
Une	stratégie	de	contenus	
robuste
&
API	de	qualité
Stratégie	de	contenus	(Phase	1)
• Analysez	l’existant
• Pensez	contenus	et	composants
• Imaginez	différents	rendus	(page,	bloc,	list,	teaser…)
• Déterminez	les	outils	d’édition	(prévisualisation,	système	de	révisions,	
publication	à	date…)
• Utilisez	des	contenus	dédiés	pour	les	landing	pages
• Réfléchissez	aux	taxonomies	à	mettre	en	place	pour	structurer	votre	
contenu
Stratégie	de	contenus	(Phase	2)
• Convertissez	les	résultats	de	votre	audit	au	format	de	données	de	Drupal
• Pensez	au	responsive	avant	tout,	surtout	pour	les	images
• Utilisez	les	bons	types	de	champs
• Servez	vous	des	champs	« entityréférences »	dès	que	possible
Une API	de	qualité
Une	API	c’est	un	contrat	déterminé	entre	le	Back-end	et	le	Front-end
• Documentée	
• Versionnée
• Testable
• Permettre	les	réponses	partielles	pour	filtrer	ou	limiter	les	résultats
• Résiliente
• Utiliser	une	stratégie	de	cache	intelligente.
• Loguer	les	requêtes	entrantes	et	les	réponses
QUELLES
OCCASIONS POUR
DÉCOUPLER UNE
APPLICATION ?
5.
- S’il	y	a	plus	d’une	application	qui	consomme	du	contenu	
- Si	vous	n’avez	pas	d’expertise	Drupal	en	interne
- Si	l’équipe	front	a	besoin	d’un	contrôle	total	de	la	structure	
des	pages
- Si	votre	projet	est	composé	de	plusieurs	équipes
POUR ALLER
PLUS LOIN6.
liens	&	références
RESTful Web	APIs
Services	for	a	ChangingWorld
O'Reilly	Media
Septembre	2013
liens	&	références
• Tag	#decoupled	du	blog	de	Dries	Buytaert
Dries	Buytaert
http://buytaert.net/tag/decoupled
• Comment	mettre	en	place	un	site	Drupal	« Headless »
Simon	Georges
https://makina-corpus.com/blog/metier/2017/comment-mettre-en-place-un-site-drupal-
headless
• Le	blog	de	Yineo
Yann	Boisselier
https://yineo.fr/
Liens	&	Références
• Distribution	Reservoir
https://github.com/acquia/reservoir
• Contentacms initiative
http://contentacms.org
• Contenta	Makes Your Content	Happy
Lullabot
https://lullabot.com/articles/contenta-makes-your-content-happy
• 7	Ways to	Make Your API	More	Successful -
Daniel	Jacobson
http://www.danieljacobson.com/blog/231
Liens	&	Références
• How	should you decouple Drupal?
http://buytaert.net/how-should-you-decouple-drupal
• Json API,	module	Drupal
https://drupal.org/project/jsonapi
• JSONAPI,	le	standard	pour	construire	des	APIs	en	JSON
http://jsonapi.org
• REST	2.0	Is	Here and	Its Name	Is	GraphQL
https://sitepoint.com/rest-2-0-graphql/
• GraphQL for	Drupal (Brouillon)
https://fgm.gitbooks.io/graphql-for-drupal
CONCLUSION
#tl;dr
• Drupal	peut	être	utilisé	de	façon	couplée	(traditionnelle),	découplée	ou	un	
mixte	entre	les	deux
• Le	headless n’est	pas	toujours	une	bonne	option
• Le	core fournit	une	solution	REST	et	il	est	possible	de	l’étendre
• Des	alternatives	existent	telles	que	JSONAPI	et	GraphQL
• Passer	du	temps	en	début	de	projet	à	analyser	et	préparer	le	terrain	pour	
les	contenus
• Développez	une	API	de	qualité	et	investissez	du	temps	sur	la	
documentation
Credit
• Images	- https://www.pexels.com
• Icones - https://thenounproject.com/
Questions ?
71
MERCI
72
t w i t t er : @ dr upagor a
Drupagora 2017 – Créer une fois,	publier partout	grâce	au	découplage d’applications et	à la	mise en	place	d’API - Julien Dubreuil
Twitter : #drupagora

Weitere ähnliche Inhalte

Ähnlich wie Drupal 8 - Découplez votre site grâce à une API afin de mettre à disposition votre contenu

Trucs & astuces drupal
Trucs & astuces drupalTrucs & astuces drupal
Trucs & astuces drupalCore-Techs
 
Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016
Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016
Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016Symetris
 
Case study : 2 applications mobiles réalisées avec Drupal
Case study : 2 applications mobiles réalisées avec DrupalCase study : 2 applications mobiles réalisées avec Drupal
Case study : 2 applications mobiles réalisées avec DrupalSkilld
 
Drupagora 2012 - Améliorations ergonomiques pour les contributeurs dans Drupal
Drupagora 2012 - Améliorations ergonomiques pour les contributeurs dans DrupalDrupagora 2012 - Améliorations ergonomiques pour les contributeurs dans Drupal
Drupagora 2012 - Améliorations ergonomiques pour les contributeurs dans DrupalOlivier Friesse
 
Drupal forces et faiblesses : prospective et en pratique
Drupal forces et faiblesses : prospective et en pratiqueDrupal forces et faiblesses : prospective et en pratique
Drupal forces et faiblesses : prospective et en pratiqueJean-Baptiste Ingold
 
Portail 2.0 & conduite du changement : les 10 clés pour réussir
Portail 2.0 & conduite du changement : les 10 clés pour réussirPortail 2.0 & conduite du changement : les 10 clés pour réussir
Portail 2.0 & conduite du changement : les 10 clés pour réussirPhilippeC
 
Positionner drupal-conference-drupalcamp-lyon-2012-marketing
Positionner drupal-conference-drupalcamp-lyon-2012-marketingPositionner drupal-conference-drupalcamp-lyon-2012-marketing
Positionner drupal-conference-drupalcamp-lyon-2012-marketingChipway
 
Présentation eZ Publish - PHP Québec
Présentation eZ Publish - PHP QuébecPrésentation eZ Publish - PHP Québec
Présentation eZ Publish - PHP QuébecGauthier Garnier
 
e-commerce Open Source par l'oect.fr
e-commerce Open Source par l'oect.fre-commerce Open Source par l'oect.fr
e-commerce Open Source par l'oect.frcyruss666
 
Quoi de neuf dans Project ?
Quoi de neuf dans Project ?Quoi de neuf dans Project ?
Quoi de neuf dans Project ?Microsoft Ideas
 
Formation Communication Projet : comment, quoi et à qui communiquer au cours ...
Formation Communication Projet : comment, quoi et à qui communiquer au cours ...Formation Communication Projet : comment, quoi et à qui communiquer au cours ...
Formation Communication Projet : comment, quoi et à qui communiquer au cours ...Arnaud Gerard
 
Le SEO en 2014 - Conférence Aquinum / APACOM sept 2014
Le SEO en 2014 - Conférence Aquinum / APACOM sept 2014Le SEO en 2014 - Conférence Aquinum / APACOM sept 2014
Le SEO en 2014 - Conférence Aquinum / APACOM sept 2014netlinker
 
Atelier IE7 Stratégie multi canal : être efficace avec ses moyens en respecta...
Atelier IE7 Stratégie multi canal : être efficace avec ses moyens en respecta...Atelier IE7 Stratégie multi canal : être efficace avec ses moyens en respecta...
Atelier IE7 Stratégie multi canal : être efficace avec ses moyens en respecta...Salon e-tourisme #VeM
 
Démystifions l'Agile - Actency Paris Open Source Summit 2019
Démystifions l'Agile - Actency Paris Open Source Summit 2019Démystifions l'Agile - Actency Paris Open Source Summit 2019
Démystifions l'Agile - Actency Paris Open Source Summit 2019Actency
 
Thierry vanoffe formations 2013
Thierry vanoffe formations 2013Thierry vanoffe formations 2013
Thierry vanoffe formations 2013Thierry Vanoffe
 
Drupal Commerce - l'e-commerce sur mesure
Drupal Commerce - l'e-commerce sur mesureDrupal Commerce - l'e-commerce sur mesure
Drupal Commerce - l'e-commerce sur mesureWouter Admiraal
 
Concevoir et déployer sa stratégie digitale
Concevoir et déployer sa stratégie digitaleConcevoir et déployer sa stratégie digitale
Concevoir et déployer sa stratégie digitaleQuinchy Riya
 
Offre migrer vers_flutter
Offre migrer vers_flutterOffre migrer vers_flutter
Offre migrer vers_flutterJulien Saumande
 
Bien Démarrer avec le Responsive Web Design
Bien Démarrer avec le Responsive Web DesignBien Démarrer avec le Responsive Web Design
Bien Démarrer avec le Responsive Web DesignGreg Hoin
 

Ähnlich wie Drupal 8 - Découplez votre site grâce à une API afin de mettre à disposition votre contenu (20)

Trucs & astuces drupal
Trucs & astuces drupalTrucs & astuces drupal
Trucs & astuces drupal
 
Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016
Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016
Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016
 
Case study : 2 applications mobiles réalisées avec Drupal
Case study : 2 applications mobiles réalisées avec DrupalCase study : 2 applications mobiles réalisées avec Drupal
Case study : 2 applications mobiles réalisées avec Drupal
 
PFE_example.pptx
PFE_example.pptxPFE_example.pptx
PFE_example.pptx
 
Drupagora 2012 - Améliorations ergonomiques pour les contributeurs dans Drupal
Drupagora 2012 - Améliorations ergonomiques pour les contributeurs dans DrupalDrupagora 2012 - Améliorations ergonomiques pour les contributeurs dans Drupal
Drupagora 2012 - Améliorations ergonomiques pour les contributeurs dans Drupal
 
Drupal forces et faiblesses : prospective et en pratique
Drupal forces et faiblesses : prospective et en pratiqueDrupal forces et faiblesses : prospective et en pratique
Drupal forces et faiblesses : prospective et en pratique
 
Portail 2.0 & conduite du changement : les 10 clés pour réussir
Portail 2.0 & conduite du changement : les 10 clés pour réussirPortail 2.0 & conduite du changement : les 10 clés pour réussir
Portail 2.0 & conduite du changement : les 10 clés pour réussir
 
Positionner drupal-conference-drupalcamp-lyon-2012-marketing
Positionner drupal-conference-drupalcamp-lyon-2012-marketingPositionner drupal-conference-drupalcamp-lyon-2012-marketing
Positionner drupal-conference-drupalcamp-lyon-2012-marketing
 
Présentation eZ Publish - PHP Québec
Présentation eZ Publish - PHP QuébecPrésentation eZ Publish - PHP Québec
Présentation eZ Publish - PHP Québec
 
e-commerce Open Source par l'oect.fr
e-commerce Open Source par l'oect.fre-commerce Open Source par l'oect.fr
e-commerce Open Source par l'oect.fr
 
Quoi de neuf dans Project ?
Quoi de neuf dans Project ?Quoi de neuf dans Project ?
Quoi de neuf dans Project ?
 
Formation Communication Projet : comment, quoi et à qui communiquer au cours ...
Formation Communication Projet : comment, quoi et à qui communiquer au cours ...Formation Communication Projet : comment, quoi et à qui communiquer au cours ...
Formation Communication Projet : comment, quoi et à qui communiquer au cours ...
 
Le SEO en 2014 - Conférence Aquinum / APACOM sept 2014
Le SEO en 2014 - Conférence Aquinum / APACOM sept 2014Le SEO en 2014 - Conférence Aquinum / APACOM sept 2014
Le SEO en 2014 - Conférence Aquinum / APACOM sept 2014
 
Atelier IE7 Stratégie multi canal : être efficace avec ses moyens en respecta...
Atelier IE7 Stratégie multi canal : être efficace avec ses moyens en respecta...Atelier IE7 Stratégie multi canal : être efficace avec ses moyens en respecta...
Atelier IE7 Stratégie multi canal : être efficace avec ses moyens en respecta...
 
Démystifions l'Agile - Actency Paris Open Source Summit 2019
Démystifions l'Agile - Actency Paris Open Source Summit 2019Démystifions l'Agile - Actency Paris Open Source Summit 2019
Démystifions l'Agile - Actency Paris Open Source Summit 2019
 
Thierry vanoffe formations 2013
Thierry vanoffe formations 2013Thierry vanoffe formations 2013
Thierry vanoffe formations 2013
 
Drupal Commerce - l'e-commerce sur mesure
Drupal Commerce - l'e-commerce sur mesureDrupal Commerce - l'e-commerce sur mesure
Drupal Commerce - l'e-commerce sur mesure
 
Concevoir et déployer sa stratégie digitale
Concevoir et déployer sa stratégie digitaleConcevoir et déployer sa stratégie digitale
Concevoir et déployer sa stratégie digitale
 
Offre migrer vers_flutter
Offre migrer vers_flutterOffre migrer vers_flutter
Offre migrer vers_flutter
 
Bien Démarrer avec le Responsive Web Design
Bien Démarrer avec le Responsive Web DesignBien Démarrer avec le Responsive Web Design
Bien Démarrer avec le Responsive Web Design
 

Drupal 8 - Découplez votre site grâce à une API afin de mettre à disposition votre contenu