Adloun

Spring Boot : écrire le serveur (école d'ingénieur) · Chapitre 4 · Application directe du cours

Lire une réponse 400

Validation et gestion des erreurs · niveau 1 (application)

Énoncé

L'application Vue a envoyé la commande suivante.


{ "lignes": [], "nom": " ", "courriel": "ada", "retrait": "drone" }

Écrire la réponse reçue, puis indiquer, pour chaque message, la contrainte qui l'a produit. Pourquoi le message sur les lignes vient-il en premier ?

Corrigé


$ curl -s -X POST localhost:8000/api/commandes \
    -H 'Content-Type: application/json' -d '{"lignes":[],"nom":" ","courriel":"ada","retrait":"drone"}'
{"detail":"La requête contient 4 erreur(s).","instance":"/api/commandes","status":400,"title":"Requête invalide","erreurs":["La commande ne contient aucun livre.","Le nom est obligatoire.","L’adresse électronique est invalide.","Le mode de retrait est invalide."]}
  • « La commande ne contient aucun livre. » : @NotEmpty sur lignes ;
  • « Le nom est obligatoire. » : @NotBlank sur nom, un espace seul n'étant pas un nom ;
  • « L'adresse électronique est invalide. » : @Pattern sur courriel, faute de @ ;
  • « Le mode de retrait est invalide. » : @Pattern sur retrait.

Les messages suivent l'ordre des composants du record, où lignes vient en premier : c'est le tri de handleMethodArgumentNotValid. Le service n'a pas été appelé : la validation a échoué avant.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →