Geek Time Juin 2017 : GraphQL

Preview:

Citation preview

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

OLBATI - Geek Time - Juin 2017 18

Thanks!Any questions?

@azaafouriatef.zaafouri@olbati.com

Recommended