Créer une API REST avec Spring Boot
Spring Boot : API REST est un cours de niveau avancé de 5 leçons (environ 2 h 40), avec 15 exercices et 15 questions de quiz. Prérequis : Collections, streams et exceptions, HTTP et API REST. Le cours demande un environnement de projet complet, prévu dans une phase ultérieure de la plateforme.
- Java
- Avancé
- 5 leçons
- 2 h 40
- 15 exercices
- Environnement de projet complet (phase 2)
Le cours en bref
Ce cours vous guide dans la création d'une API REST complète avec Spring Boot 4.1 et Java 25. Vous exposerez des ressources avec les bons verbes et codes HTTP, validerez les données entrantes avec des DTO, organiserez le code en couches grâce à l'injection de dépendances, puis centraliserez la gestion des erreurs au format ProblemDetail et testerez vos contrôleurs avec MockMvc. Les exercices exécutés testent la logique en Java standard, les tâches se réalisent dans votre environnement de développement.
Ce que tu sauras faire
- Créer et lancer un projet Spring Boot et exposer des endpoints REST qui renvoient du JSON
- Concevoir un CRUD respectant la sémantique HTTP (verbes, codes 200, 201, 204, 400, 404, 409)
- Définir des DTO avec des records et valider les entrées avec Jakarta Bean Validation
- Structurer l'application en couches contrôleur, service et repository avec l'injection par constructeur
- Centraliser la gestion des erreurs avec @RestControllerAdvice et ProblemDetail
- Tester la couche web avec @WebMvcTest, MockMvc et des mocks
Programme des 5 leçons
- Générer un projet Spring Boot avec Spring Initializr et comprendre sa structure
- Écrire un contrôleur REST qui renvoie du JSON
- Démarrer l'application et appeler l'endpoint avec curl
- 02
Routes, verbes HTTP et ResponseEntity
- Exposer un CRUD complet avec @GetMapping, @PostMapping, @PutMapping et @DeleteMapping
- Lire les paramètres de chemin, de requête et le corps JSON
- Renvoyer le bon code HTTP avec ResponseEntity (200, 201, 204, 404)
Mappings de requêtes@PathVariable, @RequestParam, @RequestBodyResponseEntity et codes HTTP
- 03
DTO et validation des données
- Séparer les objets exposés par l'API (DTO) des objets internes
- Valider les données entrantes avec Bean Validation (@NotBlank, @Size, @Email, @Positive)
- Écrire le mapping entre entité et DTO
DTO (Data Transfer Object)Bean Validation (Jakarta Validation)Mapping entité / DTO
- 04
Couche service et injection de dépendances
- Organiser une API en couches contrôleur, service et repository
- Utiliser l'injection de dépendances par constructeur de Spring
- Implémenter les règles métier dans un service testable, avec un repository en mémoire
Architecture en couchesConteneur Spring et beansInjection par constructeur
- 05
Gestion globale des erreurs et tests de l'API
- Centraliser la traduction des exceptions en réponses HTTP avec @RestControllerAdvice
- Renvoyer des erreurs au format standard ProblemDetail (RFC 9457)
- Tester un contrôleur avec @WebMvcTest et MockMvc
@RestControllerAdvice et @ExceptionHandlerProblemDetailTests MockMvc
Projet final
API REST de gestion de bibliothèque
Développez avec Spring Boot une API de gestion de livres et d'emprunts : CRUD des livres (titre, auteur, ISBN, nombre d'exemplaires), emprunt et retour d'un exemplaire, liste paginée avec filtre par auteur. Les règles métier (pas d'emprunt sans exemplaire disponible, ISBN unique) sont dans un service, les données dans un repository en mémoire derrière une interface, les erreurs au format ProblemDetail.
Livrables
- Le projet Maven complet (contrôleurs, DTO validés, services, repository, gestionnaire d'erreurs)
- Une collection de requêtes curl ou un fichier .http couvrant chaque endpoint et chaque cas d'erreur
- Au moins 6 tests @WebMvcTest et 4 tests unitaires du service
- Un README court décrivant les endpoints, les codes de retour et la commande de lancement
Critères d'évaluation
- Les verbes et codes HTTP sont corrects (201 + Location, 204, 400, 404, 409)
- Aucune entité interne n'est exposée : DTO en entrée et en sortie, validation active
- Les règles métier sont dans le service, sans dépendance à HTTP, avec injection par constructeur
- Les erreurs sont centralisées et ne divulguent aucun détail interne
- Les tests passent avec ./mvnw test et couvrent cas nominaux et cas d'erreur
Questions fréquentes
Quels prérequis pour suivre ce cours Spring Boot ?
Il faut être à l'aise avec Java (collections, streams, exceptions) et connaître les bases de HTTP et des API REST : verbes, codes de statut et JSON.
Quelle version de Spring Boot ce cours utilise-t-il ?
Le cours cible Spring Boot 4.1 avec Java 25 (LTS), tel que Spring Initializr génère les projets aujourd'hui. Les nouveautés de Spring Boot 4 qui touchent les notions du cours sont signalées : starter spring-boot-starter-webmvc, starters de test par module, Jackson 3, nouveaux imports de test.
Faut-il installer quelque chose ?
Les exercices de code s'exécutent directement sur la plateforme en Java standard. Les tâches pratiques se font dans votre environnement de développement avec un JDK 25, le Maven Wrapper fourni par le projet et curl.
La base de données est-elle abordée ?
Ce cours utilise un repository en mémoire pour se concentrer sur l'API. La persistance avec JPA et Hibernate fait l'objet du cours suivant du parcours, qui remplace ce repository sans modifier le service.
Ce cours, raconté pour ton métier
Dis ce que tu veux savoir faire : « Spring Boot : API REST » prend sa place dans ton parcours, avec des exemples de ton secteur. Les notions restent celles du cours.