22
Créer une API GraphQL avec Symfony Paris, le 21 février 2017

Créer une API GraphQL avec Symfony

Embed Size (px)

Citation preview

Page 1: Créer une API GraphQL avec Symfony

Créer une API GraphQLavec Symfony

Paris, le 21 février 2017

Page 2: Créer une API GraphQL avec Symfony

Qui suis-je?Sébastien RossetDéveloppeur PHP depuis 2000Symfony depuis 2015Freelance

@srosset81

Page 3: Créer une API GraphQL avec Symfony

La première plateforme qui rassemble tous les acteurs du bien commun(associations, ONG, bénévoles, donateurs, experts, porteurs de projets…)

Lancement prévu courant 2017 – www.goodship.eu

La générosité en action

Page 4: Créer une API GraphQL avec Symfony

Quelle technologie pour demain?• Chargement rapide• Micro-interactions• Animations

Page 5: Créer une API GraphQL avec Symfony

Le meilleur des deux mondes !

Page 6: Créer une API GraphQL avec Symfony

Pourquoi GraphQL ?

Page 7: Créer une API GraphQL avec Symfony

Un nouveau standard pour les API• Vise à remplacer REST (défini en 2000)• Développé par Facebook• Utilisé en prod depuis 2012• Open-source depuis 2015• Nombreuses implémentations

côté back-end et front-end

Javascript / Ruby / PHP / Python / Java / C++ / Go / Scala / .NET / Elixir / Haskell / SQL / Lua / Elm / Clojure / Swift / OCaml / Rust …

Page 8: Créer une API GraphQL avec Symfony

1. Déclaratif On obtient exactement ce dont on a besoin,Ni plus, ni moins.

{ REST }Une dizaine derequêtes pour une seule page

Page 9: Créer une API GraphQL avec Symfony

2. Auto-documenté

{ REST }Impossible à utiliser sans une documentation conséquente.

Page 10: Créer une API GraphQL avec Symfony

3. Fortement typé

{ REST }Aucun typage. On reçoit les données «brut»

On peut même définir ses propres types.

Page 11: Créer une API GraphQL avec Symfony

+ Validation automatique!

Page 12: Créer une API GraphQL avec Symfony

4. API unique• Un seul point d’entrée : /graphql

• Pas de gestion de versions (On peut marquer des champscomme «deprecated»)

• Tous les supports utilisent le même API

{ REST }Gestion des versions

très délicate.

Page 13: Créer une API GraphQL avec Symfony

Les développeurs back-end et front-end peuvent se réconcilier !

Page 14: Créer une API GraphQL avec Symfony

Pourquoi Symfony ?

Page 15: Créer une API GraphQL avec Symfony

Un écosystème idéal pour le back-end

Page 16: Créer une API GraphQL avec Symfony

https://github.com/Youshido/GraphQLBundle

Disponible depuis février 2016

Page 17: Créer une API GraphQL avec Symfony

DEMO !

www.github.com/srosset81/symfony-graphql-demo

Page 18: Créer une API GraphQL avec Symfony

Une transition douce !• Transformer progressivement une application Symfony en API• Appeler d’autres APIs et serveurs via un seul endpoint GraphQL (

www.github.com/APIs-guru/graphql-apis)

Page 19: Créer une API GraphQL avec Symfony

Futur du bundle Youshido• Subscriptions• Extensions (gestion des uploads, résultats paginés…)• Générateur de types• Livre à paraître en septembre 2017• Peut-être votre contribution ?

www.github.com/Youshido/GraphQLwww.github.com/Youshido/GraphQLBundle

Page 20: Créer une API GraphQL avec Symfony

Pour aller plus loin…www.graphql.orgwww.learngraphql.com

GraphQL Europe (17 mai 2017, Berlin)www.twitter.com/graphqleu

www.github.com/lexik/jwt-authentication-bundlewww.github.com/Youshido/GraphQLDemoAppwww.github.com/srosset81/symfony-graphql-demo

Page 21: Créer une API GraphQL avec Symfony

Pour son lancement, aura besoin d’un

Pour son API GraphQL et son infrastructure serveur (Docker, etc.)

DevOp Symfony

06 45 95 51 87www.twitter.com/srosset81

Page 22: Créer une API GraphQL avec Symfony

Merci !

www.github.com/srosset81/symfony-graphql-demo