ResponseEntity

En Spring Boot, la classe
ResponseEntity
fait partie du framework Spring MVC et sert à représenter une réponse HTTP complète.ResponseEntity
fait partie du module Spring Web.Si vous utilisez Spring Boot, ce module est inclus par défaut si vous avez ajouté la dépendance suivante dans votre fichier
pom.xml
(pour Maven):<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
Elle permet de contrôler à la fois :
Le code de statut HTTP ( par exemple, 200 OK, 404 Not Found , etc)
Les en-têtes HTTP.
Le corps de la réponse.
Cela donne une grande flexibilité pour personnaliser les réponses envoyées par vos contrôleurs REST.
EXEMPLE 1 :
@RestController
public class ExempleController {
@GetMapping("/exemple")
public ResponseEntity<String> exemple(){
return new ResponseEntity<>("Bonjour, Asmae !",HttpStatus.OK);
}
}
Corps de la réponse :
“Bonjour, Asmae !”
est le contenu renvoyé au client.Code de statut HTTP :
HttpStatus.OK
signifie que la requête a réussi (code 200)
EXEMPLE 2 :
On peut inclure des en-têtes spécifiques dans la réponse
@GetMapping("/avec-en-tetes")
public ResponseEntity<String> avecEntetes(){
HttpHeaders headers = new HttpHeaders();
headers.add("Custom-Header","ValeurPersonnalisee");
return new ResponseEntity<>("Contenu avec en-tetes",headers,HttpStatus.Ok);
}
EXEMPLE 3 :
On peut utiliser le builder pour rendre le code plus lisible
@GetMapping("/avec-builder")
public ResponseEntity<String> avecBuilder(){
return ResponseEntity
.status(HttpStatus.CREATED)
.header("Custom-Header", "Valeur")
.body("Ressource créée !");
}
Pourquoi utiliser ResponseEntity ?
Flexibilité :
Vous pouvez facilement définir les status HTTP et personnaliser les en-têtes.Bonne pratique REST :
Permet de mieux structurer les réponses pour les API RESTful.Gestion d’erreurs améliorée :
Par exemple, renvoyer un statut 404 avec un message personnalisé.
@GetMapping("/utilisateur/{id}")
public ResponseEntity<String> obtenirUtilisatur( @PathVariable int id){
if(id==1){
return ResponseEntity.ok("utilisateur trouvé : John Doe");
}else{
return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Utilisateur introuvable");
}
}
Subscribe to my newsletter
Read articles from Aouassar Asmae directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
