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
- 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.