Olá, como vai?
Gostaria de saber qual a diferença entre retornar ResponseEntity.created(uri).body(entidade); e retornar new ResponseEntity(entidade, HttpStatus.CREATED);
Agradeço desde já!
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá, como vai?
Gostaria de saber qual a diferença entre retornar ResponseEntity.created(uri).body(entidade); e retornar new ResponseEntity(entidade, HttpStatus.CREATED);
Agradeço desde já!
Olá, Felipe! Como vai?
A diferença entre as duas formas de retornar o status HTTP 201 está principalmente na maneira como cada uma delas lida com a URI.
Quando você usa ResponseEntity.created(uri).body(entidade);, você está usando um método do Spring Boot que automaticamente configura o status HTTP para 201 (Created) e inclui um cabeçalho 'Location' com a URI fornecida. Esse método também permite que você inclua o corpo da resposta, que neste caso é a entidade que foi criada.
Por outro lado, quando você usa new ResponseEntity(entidade, HttpStatus.CREATED);, você está criando uma nova instância de ResponseEntity com o corpo da resposta e o status HTTP fornecidos. No entanto, este método não inclui automaticamente um cabeçalho 'Location'.
A URI é importante porque ela representa o endereço do novo recurso criado. Isso é útil para o cliente (por exemplo, um aplicativo de front-end ou mobile) que pode querer acessar o novo recurso diretamente. Portanto, neste caso, seria mais apropriado usar ResponseEntity.created(uri).body(entidade);.
Espero ter ajudado e bons estudos!