Download - Geek Time Juin 2017 : GraphQL
![Page 1: Geek Time Juin 2017 : GraphQL](https://reader033.vdocuments.pub/reader033/viewer/2022052514/5a65f0897f8b9aaf638b6359/html5/thumbnails/1.jpg)
Geek Time- Juin 2017
Atef ZAAFOURIConsultant - OLBATI
![Page 2: Geek Time Juin 2017 : GraphQL](https://reader033.vdocuments.pub/reader033/viewer/2022052514/5a65f0897f8b9aaf638b6359/html5/thumbnails/2.jpg)
OLBATI - Geek Time - Juin 2017 2
Plan● Introduction
● Historique
● Limites de REST
● Les Concepts de Base
● Demo
● Relay, Apollo...
● Questions?
![Page 3: Geek Time Juin 2017 : GraphQL](https://reader033.vdocuments.pub/reader033/viewer/2022052514/5a65f0897f8b9aaf638b6359/html5/thumbnails/3.jpg)
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
![Page 4: Geek Time Juin 2017 : GraphQL](https://reader033.vdocuments.pub/reader033/viewer/2022052514/5a65f0897f8b9aaf638b6359/html5/thumbnails/4.jpg)
OLBATI - Geek Time - Juin 2017 4
Introduction
![Page 5: Geek Time Juin 2017 : GraphQL](https://reader033.vdocuments.pub/reader033/viewer/2022052514/5a65f0897f8b9aaf638b6359/html5/thumbnails/5.jpg)
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
![Page 6: Geek Time Juin 2017 : GraphQL](https://reader033.vdocuments.pub/reader033/viewer/2022052514/5a65f0897f8b9aaf638b6359/html5/thumbnails/6.jpg)
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
![Page 7: Geek Time Juin 2017 : GraphQL](https://reader033.vdocuments.pub/reader033/viewer/2022052514/5a65f0897f8b9aaf638b6359/html5/thumbnails/7.jpg)
OLBATI - Geek Time - Juin 2017 7
Limites de REST
![Page 8: Geek Time Juin 2017 : GraphQL](https://reader033.vdocuments.pub/reader033/viewer/2022052514/5a65f0897f8b9aaf638b6359/html5/thumbnails/8.jpg)
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
![Page 9: Geek Time Juin 2017 : GraphQL](https://reader033.vdocuments.pub/reader033/viewer/2022052514/5a65f0897f8b9aaf638b6359/html5/thumbnails/9.jpg)
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…
![Page 10: Geek Time Juin 2017 : GraphQL](https://reader033.vdocuments.pub/reader033/viewer/2022052514/5a65f0897f8b9aaf638b6359/html5/thumbnails/10.jpg)
OLBATI - Geek Time - Juin 2017 10
Typage fort
![Page 11: Geek Time Juin 2017 : GraphQL](https://reader033.vdocuments.pub/reader033/viewer/2022052514/5a65f0897f8b9aaf638b6359/html5/thumbnails/11.jpg)
OLBATI - Geek Time - Juin 2017 11
Mutation
![Page 12: Geek Time Juin 2017 : GraphQL](https://reader033.vdocuments.pub/reader033/viewer/2022052514/5a65f0897f8b9aaf638b6359/html5/thumbnails/12.jpg)
OLBATI - Geek Time - Juin 2017 12
Mutation
![Page 13: Geek Time Juin 2017 : GraphQL](https://reader033.vdocuments.pub/reader033/viewer/2022052514/5a65f0897f8b9aaf638b6359/html5/thumbnails/13.jpg)
OLBATI - Geek Time - Juin 2017 13
Fragments
![Page 14: Geek Time Juin 2017 : GraphQL](https://reader033.vdocuments.pub/reader033/viewer/2022052514/5a65f0897f8b9aaf638b6359/html5/thumbnails/14.jpg)
OLBATI - Geek Time - Juin 2017 14
Documentation
![Page 15: Geek Time Juin 2017 : GraphQL](https://reader033.vdocuments.pub/reader033/viewer/2022052514/5a65f0897f8b9aaf638b6359/html5/thumbnails/15.jpg)
OLBATI - Geek Time - Juin 2017 15
DEMO
![Page 16: Geek Time Juin 2017 : GraphQL](https://reader033.vdocuments.pub/reader033/viewer/2022052514/5a65f0897f8b9aaf638b6359/html5/thumbnails/16.jpg)
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
![Page 17: Geek Time Juin 2017 : GraphQL](https://reader033.vdocuments.pub/reader033/viewer/2022052514/5a65f0897f8b9aaf638b6359/html5/thumbnails/17.jpg)
OLBATI - Geek Time - Juin 2017 17
Relay