¿Cuál es la diferencia entre ResponseEntity y HttpEntity en Spring? Quiero saber la diferencia entre los dos y cuándo usarlos en un controlador Spring MVC.
HttpEntity se puede usar para crear RequestEntity y ResponseEntity.
Donde ResponseEntity se subclasifica de HttpEntity con una forma más elaborada de enviar el ResponseObject y solo se limita a enviar la Respuesta. Algunas diferencias clave están a continuación:
ResponseEntity heredado de HttpEntity que tiene un código HttpStatus adicional al enviar el objeto ResponseEntity.
También tiene ResponseEntity.BodyBuilder que agrega cuerpo al objeto de respuesta y ResponseEntity.HeadersBuilder que agrega encabezado al objeto de respuesta.
Una entidad HTTP es la mayor parte de una solicitud o respuesta HTTP, que consta de algunos de los encabezados y el cuerpo, si está presente. Parece ser la solicitud o respuesta completa sin la solicitud o la línea de estado (aunque solo ciertos campos de encabezado se consideran parte de la entidad).
mientras que ResponseEntity está destinado a representar la respuesta HTTP completa. Puede controlar todo lo que incluye: código de estado, encabezados y cuerpo.
HttpEntity envuelve tanto el mensaje de solicitud como el de respuesta. Pero ResponseEntity envuelve solo el mensaje de respuesta. ResponseEntity básicamente hereda de HttpEntity. La entidad de respuesta también puede tener un código de estado HTTP a diferencia de su clase principal. ex:
new ResponseEntity<String>("Hello World", responseHeaders, HttpStatus.CREATED);