GraphQL en environnement microservices

GraphQL en environnement microservices — module 4AGQL, Supinfo.
Trois jours pour passer des limites de REST dans une architecture microservices à une application fullstack GraphQL-native : un premier serveur Apollo, un backend complet avec mutations, un frontend React, puis un projet évalué en binôme.
| Format | 3 jours · cours, exercices progressifs et projet fullstack en binôme |
| Niveau | Master 1 — Cursus Grande École |
| Promotion | Tours, PGE 2025-2026 |
| Outils | Node.js, Apollo Server 4, Apollo Sandbox, Apollo Client, React |
Jour 1 — Introduction à GraphQL et premiers pas backend
Le module s’ouvre sur une discussion guidée autour des limites de REST en contexte microservices : over-fetching, incohérence de nommage entre services, multiplication des endpoints, impact sur les performances réseau. GraphQL est introduit à partir de ces frustrations, formulées par les étudiants eux-mêmes, comme une réponse structurée à ces problèmes.
Survol théorique : l’origine chez Facebook en 2012, l’ouverture du code en 2015, la gouvernance par la GraphQL Foundation. Puis les concepts fondamentaux — schéma, types, resolvers, queries, mutations —, les avantages et les inconvénients présentés honnêtement, et l’écosystème (Apollo, Offix, Graphback).
En pratique : un premier serveur GraphQL en Node.js avec Apollo Server 4 en mode standalone, un schéma écrit en SDL, les premiers resolvers, l’exploration d’Apollo Sandbox et des exercices sur les queries simples.
Jour 2 — Backend avancé : types, arguments, mutations
Approfondissement du backend : types scalaires et personnalisés, arguments nommés, valeurs par défaut, relations entre types, avec la construction d’une mini API utilisateur aux données en mémoire.
Les mutations, et la différence d’exécution avec les queries : en parallèle pour les unes, en série pour les autres. Les subscriptions pour le temps réel via WebSocket. Une série d’exercices progressifs couvre l’ensemble du cycle CRUD, et un point est fait sur la cohabitation de REST et GraphQL dans un même projet.
Côté frontend : intégration d’Apollo Client dans une application React, premiers composants consommant l’API, gestion des états de chargement et d’erreur.
Jour 3 — Projet fullstack : SchooInc
Une journée consacrée au projet évalué, réalisé en binôme : une application de gestion scolaire GraphQL-native, avec une API répartie en plusieurs microservices et un frontend en React, Vue ou Angular.
- Utilisateurs : CRUD complet, rôles étudiant et professeur.
- Authentification : stateless, par JWT.
- Notes : contrôle d’accès selon le rôle.
- Classes : calculs agrégés — médiane, minimum, maximum.
- Exigences professionnelles : tests sur les fonctionnalités cœur, sécurité du code, documentation et README d’installation.
L’évaluation
Le projet fait l’objet d’une restitution orale notée, qui porte à la fois sur les choix techniques, la qualité du code et la capacité des étudiants à défendre leur architecture.