Relay : le framework de data-fetching de Facebook
Utilis� par son framework React.js
Relay, annonc� � la conf�rence React.js de janvier 2015, est un nouveau framework de Facebook qui fournit des fonctionnalit�s d'extraction de donn�es (data-fetching) pour les applications de React.
Chaque �l�ment sp�cifie ses propres d�pendances de donn�es d�clarativement � l'aide d'un langage de requ�te appel� GraphQL. Les donn�es sont rendues accessibles au composant par l'interm�diaire de propri�t�s de this.props.
En pratique, les d�veloppeurs cr�ent leurs composants React de mani�re naturelle et Relay s'occupe de construire les requ�tes dans des objets fournissant les donn�es n�cessaires (et pas plus) � chaque composants, effectuant la mise � jour des composants lorsque les donn�es changent et maintenant un cache client avec toutes les donn�es.
Relay est donc une nouvelle fa�on de structurer les applications clientes qui regroupent l'exigences d'extraction de donn�es et les composants de React. Au lieu de placer la logique de r�cup�ration de donn�es dans une autre partie de l'application cliente ou de l'incorporer sur le serveur, Relay utilise l'extraction de donn�es de mani�re d�clarative via le langage GraphQL.
GraphQL n'a pas �t� invent� pour Relay. En fait, GraphQL existe depuis trois ans. Il a �t� invent� lors du passage des applications mobiles HTML5 de Facebook vers des applications purement natives. C'est un langage de requ�te pour les donn�es de graphe qui g�re l'interaction dans les applications Facebook Android et iOS.
L'objectif de Relay est de simplifier le d�veloppement afin d'obtenir des composants solides et correctement li�s � leur donn�es et ce de mani�re ind�pendante des autres composants. Notons le pr�dicat suivi : un composant ne sera pas affich� tant que toutes les donn�es qu'il a demand� soient disponibles. Les requ�tes sont d�finies de mani�re statique et le sch�ma de GraphQL fournit une description faisant autorit� sur la validit� des requ�tes. Ainsi, les requ�tes peuvent �tre valid�es d�s le d�but.
Voici quelques caract�ristiques :
- tout ce qui est inefficace ou r�p�titif est repris dans des requ�tes minimales et efficaces ;
- le framework sait quel composant utilise quelles donn�es et peut ainsi le mettre � jour automatiquement ;
- il est facile de cr�er des paterns communs comme la pagination ;
- cela simplifie l'impl�mentation c�t� serveur ;
- etc.
Introduction � Relay
Introduction � GraphQL
Et vous ?
Que pensez-vous de Relay et de GraphQL ?
Utilisez-vous les frameworks de Facebook ?
Quelle m�thode utilisez-vous pour le data-fetching ?
Partager