Adloun

Spring Boot : écrire le serveur (école d'ingénieur) · Chapitre 3 · Exercice de TD

Les livres d'un rayon

Une API REST · niveau 2

Énoncé

Exposer les livres d'un rayon comme une sous-ressource du rayon, en réutilisant le service :


GET /api/rayons/{rayon}/livres

Comparer avec GET /api/livres?rayon=… : laquelle des deux formes préférer ?

Corrigé


/** Exercice 3.8 : les livres d’un rayon, comme sous-ressource du rayon. */
@RestController
public class RayonController {

    private final LivreService service;

    public RayonController(LivreService service) {
        this.service = service;
    }

    @GetMapping("/api/rayons/{rayon}/livres")
    public List<Livre> livresDuRayon(@PathVariable String rayon) {
        return service.lister(rayon, null);
    }
}

$ curl -s localhost:8000/api/rayons/Physique/livres | jq -c "map(.titre)"
["Physique générale"]

Les deux formes sont correctes. Le paramètre de requête se combine librement avec les autres filtres (?rayon=Physique&prixMax=60) ; la sous-ressource convient quand le rayon devient une ressource à part entière, avec sa propre fiche. Pour la Librairie, le paramètre suffit, et c'est la forme qu'attend l'application Vue.

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 →