1
resposta

Por que retornar um ResponseEntity?

Prezados,

Boa tarde! Percebi que nos métodos detalhar, cadastrar, atualizar e remover do controller PagamentoController, está sendo utilizado o tipo ResponseEntity como retorno. Contudo, até onde sei, utilizamos o ResponseEntity apenas quando desejamos tratar diferentes retornos em nossas apis. Até onde entendi, a utilização foi com intuito de utilizar os métodos de atalhos fornecidos pelo ResponseEntity, como o ok(), noContent(), etc. Todavia, temos como não utilizar os mesmos e fazer uso da anotação @ResponseStatus. Isto inclusive poderia até simplificar ainda mais o código dos controllers. Em tempo, especialmente no método remover, está sendo retornado um ResponseEntity, sendo que se tudo ocorrer bem, estamos devolvendo um código 204, o que significa que deu tudo certo na requisição mas não há nada para devolver ao cliente no payload. Desta forma, não seria melhor então utilizar o void? Poderiam esclarecer melhor estes pontos? Desde já agradeço pela atenção.

1 resposta

Boa tarde Carlos, tudo bem?

Uma resposta HTTP é composta basicamente de cabeçalho (header), status code e um corpo (body), que é o conteúdo dessa resposta. A classe ResponseEntity nos permite manipular a resposta como um todo, ou seja, todos os itens citados acima, nos dando um pouco mais de flexibilidade quando desejamos utilizar alguma lógica para devolver um ou outro tipo de status e/ou conteúdo no corpo dessa resposta.

Já a anotação ResponseStatus, basicamente retorna o conteúdo do método sempre com o mesmo status. Para o exemplo demonstrado no curso, eu poderia sim ter utilizado o ResponseStatus com um status fixo, assim como também poderia ter utilizado o void para o método de excluir, mas geralmente essas diferenças são tratadas com mais detalhes nos cursos da formação Spring, que são mencionados como pré-requisitos a esses cursos da formação de microsserviços.

Mas achei muito pertinente a sua colocação e vou incluir em breve um complemento na sessão "Para Saber Mais" do curso detalhando a diferença entre ambos. Muito obrigada!

Qualquer dúvida ou consideração, não deixe de nos avisar por aqui. Aguardamos seu retorno.

Bons estudos! 😄

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!