0% ont trouvé ce document utile (0 vote)
36 vues3 pages

Spring Boot C

Le chapitre présente la création d'API REST avec Spring Boot, en utilisant des annotations comme @RestController et @GetMapping. Il explique la différence entre @RestController et @Controller, ainsi que l'utilisation des méthodes HTTP pour gérer les opérations CRUD. La gestion des erreurs est également abordée avec @ControllerAdvice et @ExceptionHandler pour un traitement global des exceptions.

Transféré par

wiam.shail02
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
36 vues3 pages

Spring Boot C

Le chapitre présente la création d'API REST avec Spring Boot, en utilisant des annotations comme @RestController et @GetMapping. Il explique la différence entre @RestController et @Controller, ainsi que l'utilisation des méthodes HTTP pour gérer les opérations CRUD. La gestion des erreurs est également abordée avec @ControllerAdvice et @ExceptionHandler pour un traitement global des exceptions.

Transféré par

wiam.shail02
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre 3 : Spring Boot

(... contenu précédent ...)

🧩 Partie C – API REST avec Spring Boot


Spring Boot facilite la création d'API REST conformes aux bonnes pratiques RESTful, grâce aux annotations
simplifiées comme @RestController , @GetMapping , @PostMapping , etc. Le format de réponse est
par défaut du JSON, et le mappage automatique est géré par Jackson.

C.1. @RestController vs @Controller

• @Controller : sert à retourner une vue (JSP, Thymeleaf)


• @RestController : retourne directement des données (JSON, XML)

Exemple p06 :

@RestController
@RequestMapping("/api/authors")
public class AuthorRestController {

private final AuthorService service;

public AuthorRestController(AuthorService service) {


this.service = service;
}

@GetMapping
public List<Author> getAllAuthors() {
return service.getAllAuthors();
}

@GetMapping("/{id}")
public Author getById(@PathVariable int id) {
return service.getAuthorById(id);
}
}

➡️ Cette classe expose deux endpoints REST : /api/authors et /api/authors/{id}

1
C.2. Méthodes HTTP : @GetMapping , @PostMapping , etc.

Spring Boot fournit des raccourcis pour chaque verbe HTTP :

• @GetMapping : lecture de ressource


• @PostMapping : création
• @PutMapping : mise à jour
• @DeleteMapping : suppression

Exemple p06 : créer un auteur

@PostMapping
public Author create(@RequestBody Author a) {
return service.save(a);
}

➡️ Les données JSON envoyées par le client sont automatiquement converties en objet Java via
@RequestBody

C.3. ResponseEntity pour les réponses HTTP structurées

ResponseEntity<T> permet de contrôler le corps de la réponse, le code HTTP, et les en-têtes.

@GetMapping("/{id}")
public ResponseEntity<Author> getById(@PathVariable int id) {
Author a = service.getAuthorById(id);
if (a == null)
return ResponseEntity.notFound().build();
return ResponseEntity.ok(a);
}

➡️ Permet de retourner un code 404 si l'auteur n'existe pas.

C.4. Gestion des erreurs REST

Spring permet de gérer globalement les exceptions via @ControllerAdvice et @ExceptionHandler .

@ControllerAdvice
public class GlobalHandler {

@ExceptionHandler(RuntimeException.class)
public ResponseEntity<String> handleError(RuntimeException e) {
return ResponseEntity.status(500).body("Erreur : " + e.getMessage());

2
}
}

➡️ Toute exception non gérée sera interceptée ici et renvoyée avec un message personnalisé.

✅ Bilan projet p06

Fonctionnalité REST Annotation Spring Boot Réalisé dans

GET all @GetMapping AuthorRestController

GET by ID @PathVariable AuthorRestController

POST (create) @PostMapping + @RequestBody AuthorRestController

Gestion 404 / erreur ResponseEntity , @ExceptionHandler GlobalHandler

Souhaites-tu que je continue avec la Partie D – Moteur de vues avec Thymeleaf (projet p06) ?

Vous aimerez peut-être aussi