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