Gaëtan TEMATE
Lead Tech Java | AWS | React
© 2025 All rights reserved.
Développement d’API REST Performantes avec Java et Spring Boot (18 H)
Ce programme a pour objectif de former les participants à la création d’API REST performantes et sécurisées avec Java et Spring Boot. À la fin de la formation, les participants seront capables de concevoir, développer, tester, documenter et déployer des API REST, tout en garantissant leur maintenabilité et leur scalabilité.
Jour 1: Rappels Essentiels en Java et Design Patterns (3 heures)
- Rappels sur les Concepts de Base en Java (1 heures)
- Programmation Orientée Objet (POO) : Encapsulation, Héritage, Polymorphisme, Abstraction
- Interfaces, Classes abstraites et final
- Gestion des exceptions en Java et bonnes pratiques
- Utilisation des collections et itérations avancées (List, Set, Map)
- Exercices
- Utilisation des Lambda Expressions et des Streams (0.5 heures)
- Introduction aux lambda expressions en Java 8+
- Manipulation des collections avec l’API Stream
- Opérations sur les collections : filter, map, reduce, collect
- Exercices.
- Introduction aux Design Patterns en Java (1.5 heures)
- Singleton : Quand et comment l’utiliser dans les applications Spring
- Factory : Utilisation dans le contexte de création d’objets dans les API
- Builder : Création d’objets complexes en Java
- Dependency Injection : Principe fondamental dans Spring, comment et pourquoi l’utiliser
- Repository Pattern : Pour la gestion des accès aux données dans les applications
- Exercices
Introduction à Spring Boot et API REST (3 heures)
- Introduction à Spring Boot (1 heures)
- Comprendre l’architecture de Spring Boot
- Configuration initiale d’un projet avec Spring Initializr
- Introduction au cycle de vie des requêtes HTTP
- Exercice: Créer un projet Spring Boot et définir une structure de base pour une API.
- Introduction à RESTful API (0.5 heures)
- Les principes fondamentaux de l’architecture RESTful
- Meilleures pratiques pour la conception des endpoints REST
- Différences entre JSON et XML
- Exercices
- Création d’Endpoints RESTful avec Spring Boot (1.5 heures)
- Utilisation des annotations @GetMapping, @PostMapping, @PutMapping, @DeleteMapping
- Gestion des formats JSON/XML avec Jackson
- Exercices
Jour 2: Intégration avec les Bases de Données et ORM (4 heures)
- Connexion à des Bases de Données Relationnelles (1.5 heures)
- Intégration avec MySQL et PostgreSQL
- Utilisation de Spring Data JPA pour la gestion des entités
- Exercice: Configurer une connexion à MySQL et créer une entité
Product
.
- ORM avec JPA/Hibernate (1.5 heures)
- Création et mapping des entités avec JPA et Hibernate
- Gestion des relations (One-to-Many, Many-to-One, Many-to-Many)
- Transactions et gestion des sessions
- Exercice: Mettre en place des entités avec des relations et gérer des transactions simples.
- Base de Données NoSQL: MongoDB (1 heures)
- Introduction à MongoDB et intégration avec Spring Data MongoDB
- Opérations CRUD avec MongoDB
- Exercice: Configurer MongoDB et implémenter des requêtes basiques pour des entités non relationnelles.
Sécurisation des API (2 heures)
- Introduction à Spring Security (0.5 heures)
- Présentation de Spring Security
- Concepts d’authentification et d’autorisation
- Exercice: Mettre en place Spring Security pour protéger une API.
- Authentification avec JWT (1 heures)
- Implémentation de l’authentification basée sur JWT (JSON Web Token)
- Création de tokens et protection des endpoints
- Exercice: Créer un système d’authentification JWT pour protéger une API REST.
- Gestion des Rôles et Permissions (0.5 heures)
- Gestion des utilisateurs et des rôles avec Spring Security
- Restriction de l’accès aux ressources en fonction des rôles
- Exercice: Créer des rôles et définir des permissions pour protéger certains endpoints.
Jour 3: Gestion des Erreurs, Validation, et Documentation (3 heures)
- Gestion des Erreurs et Exceptions (1 heures)
- Gestion globale des erreurs avec @ControllerAdvice
- Standardisation des messages d’erreur
- Exercice: Implémenter un mécanisme de gestion des erreurs avec des réponses JSON standardisées.
- Validation des Données (1 heures)
- Utilisation des annotations de validation @Valid, @NotNull, @Pattern
- Validation des entrées pour garantir l’intégrité des données
- Exercice: Valider les données des requêtes POST avec des annotations de validation.
- Documentation avec Swagger/OpenAPI (1 heures)
- Introduction à Swagger pour la documentation des API
- Génération automatique des spécifications OpenAPI
- Exercice: Générer automatiquement la documentation Swagger pour l’API.
Tests, Déploiement et Maintenance (3 heures)
- Tests Unitaires et d’Intégration (0.5 heures)
- Utilisation de JUnit et Mockito pour les tests unitaires
- Tests d’intégration avec Spring Boot Test
- Exercice: Écrire des tests unitaires et d’intégration pour les endpoints CRUD.
- CI/CD et Déploiement avec Docker et Kubernetes (2 heures)
- Introduction aux pipelines CI/CD avec GitLab CI, GitHub Actions
- Création de conteneurs Docker et déploiement dans Kubernetes
- Exercice: Déployer une API avec Docker et configurer un pipeline CI/CD.
- Suivi des Performances et Maintenance (0.5 heures)
- Utilisation d’outils de monitoring et d’analyse des performances (Prometheus, Grafana)
- Bonnes pratiques pour assurer la maintenance des API
- Exercice: Configurer un outil de monitoring pour surveiller les performances de l’API déployée.
Compétences acquises à la fin de la formation :
- Maîtrise des concepts Java nécessaires pour travailler avec Spring Boot, y compris les design patterns.
- Capacité à concevoir et développer des API REST sécurisées avec Java Spring Boot.
- Compétence dans l’intégration des bases de données relationnelles (MySQL, PostgreSQL) et NoSQL (MongoDB).
- Gestion des rôles, des permissions et de la sécurité des API avec Spring Security et JWT.
- Écriture de tests unitaires et d’intégration pour garantir la qualité des API.
- Déploiement et gestion d’API en production avec Docker, Kubernetes, et des pipelines CI/CD.