Date:

When to Use ResponseEntity

Controller com Endpoint

Vejamos a controller com o endpoint abaixo:

@RestController
@RequestMapping("v1/hello")
public class ExampleController {
    @GetMapping
    public ResponseEntity<String> get() {
        return ResponseEntity.ok("Hello World!");
    }
}

ResponseEntity

Quando se utiliza a anotação @RestController do Spring, por default os responses são colocados nos body’s das respostas, é desnecessário o uso de ResponseEntity tipificando o retorno do método, apenas o tipo da resposta diretamente, como no exemplo abaixo:

@RestController
@RequestMapping("v1/hello")
public class ExampleController {
    @GetMapping
    public String get() {
        return "Hello World!";
    }
}

Também, por default, no caso de sucesso, o status code utilizado nos enpoints é 200 (OK), ou seja, só se faz necessário alterá-lo quando é desejado utilizar outro status, e não precisa ser utilizado ResponseEntity, basta utilizar a anotação @ResponseStatus acima do método:

@RestController
@RequestMapping("v1/hello")
public class ExampleController {
    @GetMapping
    @ResponseStatus(HttpStatus.ACCEPTED)
    public String get() {
        return "Hello World!";
    }
}

Por que existir a ResponseEntity?

Para casos em que você precisa adicionar mais informações na resposta que não apenas o body e o status, como por exemplo adicionar um header ao response:

@RestController
@RequestMapping("v1/hello")
public class ExampleController {
    @GetMapping
    public ResponseEntity<String> get() {
        return ResponseEntity.ok("Hello World!")
               .header("X-Test", "Blabla");
    }
}

Conclusão

A ResponseEntity é uma classe do Spring que permite que você controle o status code e os headers da resposta. Embora não seja necessário usar ResponseEntity em todos os casos, é útil quando você precisa adicionar mais informações na resposta.

Frequently Asked Questions

Q: Por que uso ResponseEntity?
A: Você pode usar ResponseEntity para adicionar mais informações na resposta, como headers ou status code.

Q: Posso usar ResponseEntity em todos os casos?
A: Não, você não precisa usar ResponseEntity em todos os casos. Em muitos casos, você pode simplesmente retornar o tipo da resposta diretamente.

Q: Qual é o status code padrão para uma resposta bem-sucedida?
A: O status code padrão para uma resposta bem-sucedida é 200 (OK).

Latest stories

Read More

LEAVE A REPLY

Please enter your comment!
Please enter your name here