ResponseEntity

Aouassar AsmaeAouassar Asmae
2 min read
  • 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 ?

  1. Flexibilité :
    Vous pouvez facilement définir les status HTTP et personnaliser les en-têtes.

  2. Bonne pratique REST :
    Permet de mieux structurer les réponses pour les API RESTful.

  3. 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");
    }
}
0
Subscribe to my newsletter

Read articles from Aouassar Asmae directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Aouassar Asmae
Aouassar Asmae