2. OLBATI - Geek Time - Juin 2017 2
Plan
● Introduction
● Historique
● Limites de REST
● Les Concepts de Base
● Demo
● Relay, Apollo...
● Questions?
3. OLBATI - Geek Time - Juin 2017 3
Introduction
● Définit un langage permettant de requêter et
récupérer de manière déclarative des données depuis
un back-end
● On décrit nos types de données sous forme d’un
Graphe
● On définit nos Requêtes sur le client
● Implémentée en plusieurs langages de
programmation
5. OLBATI - Geek Time - Juin 2017 5
Historique
● Créé par Facebook
● Remplacer tous les services REST nécessaires aux
applications mobile
● En production depuis 2012 pour les applications iOS
et Android de Facebook
6. OLBATI - Geek Time - Juin 2017 6
Limites de REST
● REST est tout ou rien. Si vous requêtez un objet vous aurez spontanément
tous les champs de l'objet ou rien
● REST oblige souvent à enchaîner plusieurs appels pour obtenir les données
souhaitées
● REST n'est pas fait pour gérer facilement les relations entre objets,
● REST est statique, vous obtenez la réponse que le développeur de
l'application a décidé de définir
● REST impose des échanges entre développeurs afin que les API REST
implémentées puissent convenir à tous les projets
● REST n'est d'aucune aide pour vous garantir le type des données échangées
8. OLBATI - Geek Time - Juin 2017 8
Les Concepts de Base
● Hiérarchique
● Requêtes spécifiques au client
● Typage fort
● Rétrocompatibilité
● Introspectif
● Indépendant du transport
9. OLBATI - Geek Time - Juin 2017 9
Les types
● Des Scalar : Boolean, String, Int, Float, etc..
● Des « Object Types»
● Des interfaces, enum, List, non-null type etc…
16. OLBATI - Geek Time - Juin 2017 16
Relay
● Créer pour GraphQL
● Permet à chaque composant de définir les données
dont il a besoin
● Au coeur de la plupart des applications Facebook