geek time juin 2017 : graphql
TRANSCRIPT
Geek Time- Juin 2017
Atef ZAAFOURIConsultant - OLBATI
OLBATI - Geek Time - Juin 2017 2
Plan● Introduction
● Historique
● Limites de REST
● Les Concepts de Base
● Demo
● Relay, Apollo...
● Questions?
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
OLBATI - Geek Time - Juin 2017 4
Introduction
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
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
OLBATI - Geek Time - Juin 2017 7
Limites de REST
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
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…
OLBATI - Geek Time - Juin 2017 10
Typage fort
OLBATI - Geek Time - Juin 2017 11
Mutation
OLBATI - Geek Time - Juin 2017 12
Mutation
OLBATI - Geek Time - Juin 2017 13
Fragments
OLBATI - Geek Time - Juin 2017 14
Documentation
OLBATI - Geek Time - Juin 2017 15
DEMO
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
OLBATI - Geek Time - Juin 2017 17
Relay