Adloun

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 SUCCESS

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 →