18
Geek Time- Juin 2017 Atef ZAAFOURI Consultant - OLBATI

Geek Time Juin 2017 : GraphQL

  • Upload
    olbati

  • View
    38

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Geek Time Juin 2017 : GraphQL

Geek Time- Juin 2017

Atef ZAAFOURIConsultant - OLBATI

Page 2: Geek Time Juin 2017 : GraphQL

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

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

OLBATI - Geek Time - Juin 2017 4

Introduction

Page 5: Geek Time Juin 2017 : GraphQL

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

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

OLBATI - Geek Time - Juin 2017 7

Limites de REST

Page 8: Geek Time Juin 2017 : GraphQL

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

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

OLBATI - Geek Time - Juin 2017 10

Typage fort

Page 11: Geek Time Juin 2017 : GraphQL

OLBATI - Geek Time - Juin 2017 11

Mutation

Page 12: Geek Time Juin 2017 : GraphQL

OLBATI - Geek Time - Juin 2017 12

Mutation

Page 13: Geek Time Juin 2017 : GraphQL

OLBATI - Geek Time - Juin 2017 13

Fragments

Page 14: Geek Time Juin 2017 : GraphQL

OLBATI - Geek Time - Juin 2017 14

Documentation

Page 15: Geek Time Juin 2017 : GraphQL

OLBATI - Geek Time - Juin 2017 15

DEMO

Page 16: Geek Time Juin 2017 : GraphQL

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

OLBATI - Geek Time - Juin 2017 17

Relay

Page 18: Geek Time Juin 2017 : GraphQL

OLBATI - Geek Time - Juin 2017 18

Thanks!Any questions?

@[email protected]