Créer une API
GraphQL
avec Symfony
Paris, le 21 février 2017
Qui suis-je?
Sébastien Rosset
Développeur PHP depuis 2000
Symfony depuis 2015
Freelance
@srosset81
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
Quelle technologie pour demain?
• Chargement rapide
• Micro-interactions
• Animations
Le meilleur des deux mondes !
Pourquoi
GraphQL ?
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 …
1. Déclaratif On obtient exactement ce dont on a besoin,
Ni plus, ni moins.
{ REST }
Une dizaine de
requêtes pour
une seule page
2. Auto-documenté
{ REST }
Impossible à utiliser sans
une documentation
conséquente.
3. Fortement typé
{ REST }
Aucun typage. On reçoit
les données «brut»
On peut même définir
ses propres types.
+ Validation automatique!
4. API unique
• Un seul point d’entrée : /graphql
• Pas de gestion de versions
(On peut marquer des champs
comme «deprecated»)
• Tous les supports utilisent le même API
{ REST }
Gestion des versions
très délicate.
Les développeurs back-end et front-end peuvent se réconcilier !
Pourquoi
Symfony ?
Un écosystème idéal pour le back-end
https://github.com/Youshido/GraphQLBundle
Disponible depuis février 2016
DEMO !
www.github.com/srosset81/symfony-graphql-demo
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)
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/GraphQL
www.github.com/Youshido/GraphQLBundle
Pour aller plus loin…
www.graphql.org
www.learngraphql.com
GraphQL Europe (17 mai 2017, Berlin)
www.twitter.com/graphqleu
www.github.com/lexik/jwt-authentication-bundle
www.github.com/Youshido/GraphQLDemoApp
www.github.com/srosset81/symfony-graphql-demo
Pour son lancement,
aura besoin d’un
Pour son API GraphQL et son infrastructure serveur (Docker, etc.)
DevOp Symfony
06 45 95 51 87
www.twitter.com/srosset81
Merci !
www.github.com/srosset81/symfony-graphql-demo

Créer une API GraphQL avec Symfony

Notes de l'éditeur