Spring Boot : écrire le serveur (école d'ingénieur) · Chapitre 1 · Application directe du cours
Les nouveautés
Premiers pas avec Spring Boot · niveau 2
Énoncé
Ajouter un point d'entrée GET /api/livres/nouveautes qui ne renvoie que les livres dont le champ nouveaute vaut true. Pourquoi ce chemin ne risque-t-il pas d'être confondu, plus tard, avec GET /api/livres/{isbn} ?
Corrigé
@RestController
public class NouveauteController {
@GetMapping("/api/livres/nouveautes")
public List<Livre> nouveautes() {
return Catalogue.LIVRES.stream()
.filter(Livre::nouveaute)
.toList();
}
}
$ curl -s localhost:8080/api/livres/nouveautes | jq "map(.titre)"
["Programmation Java","Introduction à l’algorithmique","Analyse MPSI"]
Quand plusieurs correspondances conviennent, Spring MVC choisit la plus précise : un chemin littéral l'emporte sur un chemin à variable. Ainsi, pour la requête GET /api/livres/nouveautes, la méthode associée à ce chemin exact est préférée à celle de /api/livres/{isbn}. La requête GET /api/livres/nouveautes n'atteindra donc jamais la méthode qui cherche un livre par ISBN. Le rapport de tests du projet des corrigés :
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.057 s -- in fr.librairie.ex9.RayonControllerTest
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.035 s -- in fr.librairie.ex7.FormatControllerTest
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.036 s -- in fr.librairie.ex11.NouveauteControllerTest
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.021 s -- in fr.librairie.ex3.BonjourStrictControllerTest
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.011 s -- in fr.librairie.ex2.SanteControllerTest
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.011 s -- in fr.librairie.ex5.NombreControllerTest
[INFO] Tests run: 8, Failures: 0, Errors: 0, Skipped: 0
[INFO] BUILD SUCCESS100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.