SlideShare une entreprise Scribd logo
1  sur  5
Télécharger pour lire hors ligne
GraphQL et PRISMA
https://github.com/radioactivit/graphql-meetup
Qu’est-ce que GraphQL ?
La version courte : l’avenir des APIs
1. Lorsqu’on appelle un endpoint, on reçoit toutes les infos que le back souhaite
envoyer
2. Si on veut plusieurs types d’objet, il faudra plusieurs appels
3. Les relations entre les objets ne sont pas simples à conceptualiser
4. Les endpoints doivent être définis en amont
Quelques défauts des APIs actuelles :
Et avec GraphQL ?
1. Lorsqu’on appelle un endpoint, on reçoit toutes les infos que le back souhaite
envoyer On définit en JSON les données attendues en retour
2. Si on veut plusieurs types d’objet, il faudra plusieurs appels On peut appeler les
objets liés dans un même appel.
3. Les relations entre les objets ne sont pas simples à conceptualiser Les relations
sont aussi simple que leur représentation JSON
4. Les endpoints doivent être définis en amont On définit les objets et le front choisit
ce qu’il veut en faire.
Un exemple ?
La version REST : https://swapi.co/
La version GraphQL : https://graphql.org/swapi-graphql/
Créons le nôtre avec Prisma
Faisons ensemble un endpoint graphql de gestion de manga avec auteur, volume et catégorie.

Contenu connexe

Plus de Olivier Destrebecq

Le RGPD dans le contexte mobile
Le RGPD dans le contexte mobileLe RGPD dans le contexte mobile
Le RGPD dans le contexte mobileOlivier Destrebecq
 
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...Olivier Destrebecq
 
DMCA #23: Patrick kedziora - boilingice - art is theft 2018
DMCA #23: Patrick kedziora - boilingice - art is theft 2018DMCA #23: Patrick kedziora - boilingice - art is theft 2018
DMCA #23: Patrick kedziora - boilingice - art is theft 2018Olivier Destrebecq
 
DMCA #20: Migration Natif vers react natif
DMCA #20: Migration Natif vers react natifDMCA #20: Migration Natif vers react natif
DMCA #20: Migration Natif vers react natifOlivier Destrebecq
 
DevMobCA #18: L'industrialisation des application mobiles
DevMobCA #18: L'industrialisation des application mobilesDevMobCA #18: L'industrialisation des application mobiles
DevMobCA #18: L'industrialisation des application mobilesOlivier Destrebecq
 
Mobilization 2017: Don't lose your users because of endless quality issues
Mobilization 2017: Don't lose your users because of endless quality issuesMobilization 2017: Don't lose your users because of endless quality issues
Mobilization 2017: Don't lose your users because of endless quality issuesOlivier Destrebecq
 
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...Olivier Destrebecq
 
Designing a json/rest api for your mobile app
Designing a json/rest api for your mobile appDesigning a json/rest api for your mobile app
Designing a json/rest api for your mobile appOlivier Destrebecq
 
DevMobCA: Continuous integration
DevMobCA: Continuous integrationDevMobCA: Continuous integration
DevMobCA: Continuous integrationOlivier Destrebecq
 

Plus de Olivier Destrebecq (13)

React xp
React xpReact xp
React xp
 
Le RGPD dans le contexte mobile
Le RGPD dans le contexte mobileLe RGPD dans le contexte mobile
Le RGPD dans le contexte mobile
 
AWS chez Attestis
AWS chez AttestisAWS chez Attestis
AWS chez Attestis
 
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
 
DMCA #23: Patrick kedziora - boilingice - art is theft 2018
DMCA #23: Patrick kedziora - boilingice - art is theft 2018DMCA #23: Patrick kedziora - boilingice - art is theft 2018
DMCA #23: Patrick kedziora - boilingice - art is theft 2018
 
DMCA#21: reactive-programming
DMCA#21: reactive-programmingDMCA#21: reactive-programming
DMCA#21: reactive-programming
 
DMCA #20: Migration Natif vers react natif
DMCA #20: Migration Natif vers react natifDMCA #20: Migration Natif vers react natif
DMCA #20: Migration Natif vers react natif
 
DevMobCA #18: beacons
DevMobCA #18: beaconsDevMobCA #18: beacons
DevMobCA #18: beacons
 
DevMobCA #18: L'industrialisation des application mobiles
DevMobCA #18: L'industrialisation des application mobilesDevMobCA #18: L'industrialisation des application mobiles
DevMobCA #18: L'industrialisation des application mobiles
 
Mobilization 2017: Don't lose your users because of endless quality issues
Mobilization 2017: Don't lose your users because of endless quality issuesMobilization 2017: Don't lose your users because of endless quality issues
Mobilization 2017: Don't lose your users because of endless quality issues
 
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
 
Designing a json/rest api for your mobile app
Designing a json/rest api for your mobile appDesigning a json/rest api for your mobile app
Designing a json/rest api for your mobile app
 
DevMobCA: Continuous integration
DevMobCA: Continuous integrationDevMobCA: Continuous integration
DevMobCA: Continuous integration
 

Dernier

comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésAlgo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésSana REFAI
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirstjob4
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Ville de Châteauguay
 
optimisation logistique MLT_231102_155827.pdf
optimisation logistique  MLT_231102_155827.pdfoptimisation logistique  MLT_231102_155827.pdf
optimisation logistique MLT_231102_155827.pdfSoukainaMounawir
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 

Dernier (7)

comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésAlgo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigés
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdf
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
 
optimisation logistique MLT_231102_155827.pdf
optimisation logistique  MLT_231102_155827.pdfoptimisation logistique  MLT_231102_155827.pdf
optimisation logistique MLT_231102_155827.pdf
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 

N'en restons pas au REST, l'heure est au GraphQL

  • 2. Qu’est-ce que GraphQL ? La version courte : l’avenir des APIs 1. Lorsqu’on appelle un endpoint, on reçoit toutes les infos que le back souhaite envoyer 2. Si on veut plusieurs types d’objet, il faudra plusieurs appels 3. Les relations entre les objets ne sont pas simples à conceptualiser 4. Les endpoints doivent être définis en amont Quelques défauts des APIs actuelles :
  • 3. Et avec GraphQL ? 1. Lorsqu’on appelle un endpoint, on reçoit toutes les infos que le back souhaite envoyer On définit en JSON les données attendues en retour 2. Si on veut plusieurs types d’objet, il faudra plusieurs appels On peut appeler les objets liés dans un même appel. 3. Les relations entre les objets ne sont pas simples à conceptualiser Les relations sont aussi simple que leur représentation JSON 4. Les endpoints doivent être définis en amont On définit les objets et le front choisit ce qu’il veut en faire.
  • 4. Un exemple ? La version REST : https://swapi.co/ La version GraphQL : https://graphql.org/swapi-graphql/
  • 5. Créons le nôtre avec Prisma Faisons ensemble un endpoint graphql de gestion de manga avec auteur, volume et catégorie.