Module 1 — Fondamentaux des API web et des architectures d’échange
- Rôle des API dans les systèmes d’information, les applications web, mobiles et les architectures distribuées.
- Notions de client, serveur, ressource, endpoint, requête, réponse et contrat d’échange.
- Différences entre API internes, partenaires et publiques selon les contextes d’usage.
- Panorama des approches REST, RPC et GraphQL pour situer les choix d’architecture.
- Critères de qualité d’une API : clarté, cohérence, robustesse, sécurité et évolutivité.
Module 2 — Concevoir une API REST cohérente et exploitable
- Principes de conception REST : ressources, verbes HTTP, statuts de réponse et structuration des URI.
- Organisation des opérations courantes : consultation, création, modification, suppression et recherche.
- Gestion des paramètres, filtres, tris, pagination et formats de réponse.
- Structuration des données échangées pour préserver lisibilité, stabilité et compatibilité.
- Bonnes pratiques de versionnement, de nomenclature et de standardisation des endpoints.
- Mise en application encadrée : formaliser la structure REST d’un service métier type.
Module 3 — Comprendre et modéliser une API GraphQL
- Principes de GraphQL : schéma, types, champs, requêtes, mutations et abonnement selon les besoins.
- Différences entre récupération ciblée de données en GraphQL et exposition de ressources en REST.
- Construction d’un schéma lisible et évolutif à partir d’objets métier et de relations fonctionnelles.
- Gestion des types scalaires, objets, listes, énumérations et champs imbriqués.
- Introduction à la logique des resolvers et à l’orchestration des sources de données.
- Mise en application encadrée : modéliser un schéma GraphQL simple à partir d’un besoin applicatif.
Module 4 — Mettre en œuvre les échanges et la consommation des API
- Construction et envoi de requêtes HTTP avec paramètres, en-têtes, corps et authentification.
- Lecture, validation et exploitation des réponses dans un contexte front-end, back-end ou interservices.
- Écriture de requêtes GraphQL ciblées pour limiter la surconsommation ou les données inutiles.
- Gestion des mutations pour créer ou mettre à jour des données de manière structurée.
- Utilisation raisonnée des outils de test et d’exploration d’API pour valider les échanges.
- Mise en application encadrée : interroger et manipuler des données via REST et GraphQL sur un cas générique.
Module 5 — Sécuriser les API et maîtriser les accès
- Enjeux de sécurité des API : exposition des données, contrôle d’accès, traçabilité et protection des flux.
- Principes d’authentification et d’autorisation adaptés aux API web et aux architectures distribuées.
- Gestion des rôles, permissions, jetons d’accès et sécurisation des points d’entrée.
- Validation des entrées, limitation des abus, contrôle des erreurs et protection contre les usages malveillants.
- Spécificités de sécurité GraphQL : introspection, profondeur de requête, complexité et contrôle des champs exposés.
- Bonnes pratiques de confidentialité et de circulation des données entre services et consommateurs.
Module 6 — Optimiser les performances et la maintenabilité
- Identification des causes fréquentes de lenteur ou de surcharge dans une API REST ou GraphQL.
- Mise en cache, pagination, filtrage et limitation du volume de données échangées.
- Prévention des appels inutiles, des redondances et des problèmes de type N+1 en GraphQL.
- Organisation du code, séparation des responsabilités et mutualisation des traitements.
- Gestion des erreurs, messages de retour et journalisation pour faciliter l’exploitation.
- Mise en application encadrée : analyser des points d’amélioration sur une API type pour renforcer performance et lisibilité.
Module 7 — Tester, documenter et fiabiliser les interfaces
- Rôle des tests fonctionnels, techniques et de contrat dans la qualité d’une API.
- Vérification des routes, statuts, formats, règles métier et comportements attendus.
- Contrôle de la cohérence entre schéma GraphQL, resolvers et données réellement exposées.
- Production d’une documentation claire pour faciliter l’intégration côté développeurs ou partenaires.
- Structuration d’exemples d’appel, de réponses et de cas d’erreur pour améliorer l’appropriation.
- Mise en application encadrée : rédiger un socle de documentation et de scénarios de validation sur une API générique.
Module 8 — Faire évoluer une architecture API selon les usages métiers
- Arbitrage entre REST et GraphQL selon la nature des échanges, des interfaces clientes et des contraintes techniques.
- Prise en compte des besoins d’intégration, de modularité et d’évolution fonctionnelle dans la durée.
- Gestion de la compatibilité lors des évolutions de schéma, de version ou de structure de données.
- Coordination entre équipes produit, développement et exploitation autour d’un contrat d’interface partagé.
- Mise en place de bonnes pratiques de gouvernance pour harmoniser les usages et limiter les ruptures.
- Mise en application encadrée : définir des axes d’évolution pour une architecture API à partir d’un cas transverse.






