Download - Créer une API GraphQL avec Symfony
![Page 1: Créer une API GraphQL avec Symfony](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/1.jpg)
Créer une API GraphQLavec Symfony
Paris, le 21 février 2017
![Page 2: Créer une API GraphQL avec Symfony](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/2.jpg)
Qui suis-je?Sébastien RossetDéveloppeur PHP depuis 2000Symfony depuis 2015Freelance
@srosset81
![Page 3: Créer une API GraphQL avec Symfony](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/4.jpg)
Quelle technologie pour demain?• Chargement rapide• Micro-interactions• Animations
![Page 5: Créer une API GraphQL avec Symfony](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/5.jpg)
Le meilleur des deux mondes !
![Page 6: Créer une API GraphQL avec Symfony](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/6.jpg)
Pourquoi GraphQL ?
![Page 7: Créer une API GraphQL avec Symfony](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/9.jpg)
2. Auto-documenté
{ REST }Impossible à utiliser sans une documentation conséquente.
![Page 10: Créer une API GraphQL avec Symfony](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/11.jpg)
+ Validation automatique!
![Page 12: Créer une API GraphQL avec Symfony](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/13.jpg)
Les développeurs back-end et front-end peuvent se réconcilier !
![Page 14: Créer une API GraphQL avec Symfony](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/14.jpg)
Pourquoi Symfony ?
![Page 15: Créer une API GraphQL avec Symfony](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/15.jpg)
Un écosystème idéal pour le back-end
![Page 16: Créer une API GraphQL avec Symfony](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/16.jpg)
https://github.com/Youshido/GraphQLBundle
Disponible depuis février 2016
![Page 17: Créer une API GraphQL avec Symfony](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/17.jpg)
DEMO !
www.github.com/srosset81/symfony-graphql-demo
![Page 18: Créer une API GraphQL avec Symfony](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052219/58b8a37d1a28abc06d8b590b/html5/thumbnails/22.jpg)
Merci !
www.github.com/srosset81/symfony-graphql-demo