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

    Spring Boot@RestControllerSérialisation JSON avec Jackson

  1. 02

    Routes, verbes HTTP et ResponseEntity

    20 min
    • 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

  2. 03

    DTO et validation des données

    20 min
    • 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

  3. 04

    Couche service et injection de dépendances

    20 min
    • 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

  4. 05

    Gestion globale des erreurs et tests de l'API

    22 min
    • 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.

L'aperçu est gratuit, et les cours se suivent un par un sans payer. Le parcours ne contient que des leçons du catalogue.