Suite du TD n°1 — gestion d'erreur en JSON, mapping POST/PUT avec @RequestBody, maîtrise des réponses HTTP, pagination, et import CSV.

Préambule

La démonstration 2 du TD n°1 souffre de plusieurs faiblesses :

L'objectif est de corriger ces deux points, puis de présenter quatre fonctionnalités très pratiques :

📦 Projet de démonstration : springboot-td2-src.tgz


1. Gestion d'erreurs

Par défaut, Spring renvoie une page HTML basique lorsqu'une route est invalide ou qu'une exception interne survient. Pour une API REST, c'est inadapté : on préfère renvoyer un objet JSON décrivant l'erreur.

Mise en place minimale

Il faut trois ingrédients :

  1. Une classe d'exception héritant de RuntimeException (ex. ResourceNotFoundException).
  2. Une classe DTO représentant l'erreur en JSON (ex. ErrorDTO, avec numéro + message).
  3. Une classe annotée @RestControllerAdvice qui définit les gestionnaires d'exception.

Stratégie complète recommandée