GraphQL

Master Class
Historique
Développé par Facebook en 2012.
Sortie publique en 2015.
Influences



Orienté services
Qu'est ce que c'est ?
- Un langage de requêtes.
- Très fortement typé.
Avantages par rapport aux requêtes classiques
- Obtenir les ressources que l'on souhaite en une seule requête.
- Open source
Fonctionnalités
Requêtes
Mutations
Souscriptions
Schemas
Introspection
Gestion des erreurs
Souscription
Très rapidement...

Validation de la requête
Appel des resolvers
Affichage de la requête
Documentation
allBreaches: {
type: new GraphQLList(allBreachesType),
resolve(parent, args) {
return axios
.get('https://haveibeenpwned.com/api/v2/breaches', config)
.then(res => res.data)
}
}
Exemple
Typer son modèle
type Project {
name: String
tagline: String
contributors: [User]
}
Réaliser sa requête
Résultat
{
project(name: "GraphQL") {
tagline
}
}
{
"project": {
"tagline": "A query language for APIs"
}
}
Conclusion
Avantages
Inconvéniants
Mobile first, retour d'expérience
Gère des schémas complexes
Offre une solution d'orchestration de microservices
Rend le travail des devs plus fun et plus facile
Ne résous pas tout les problèmes de perfs
GraphQL ne remplace pas le REST
Basé sur la popularité
Ne va pas résoudre tout vos problèmes
Let's
Consignes
Réaliser une app web
Technos
API
Back-end
Front-end au choix
Install
npm init -y
npm install --save graphql express-graphql express axios
npm install -D nodemon
Partie Back-end
Partie front-end
Pour les plus rapides d'entre vous, vous êtes libre de faire la partie front de votre application
Déployer son app
Sources
Tuto
GraphQL With React & Apollo [1] - Express GraphQL Server
Liens utiles
Pour les plus courageux
Vue
GraphQL
By David Journo
GraphQL
- 818