Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

...

Cambiar el modelo de respuesta implica que, si no se usa otro mecanismo, el nuevo modelo será devuelto en todas las situaciones de error.

Ejemplo de fichero extendido:

...


Enumerar conclusiones, si se quiere hacer rápido usar ResponseStatusException, si se quiere cambiar la respuesta o el modelo y tenemos muchas excepciones usar ControllerAdvice + ResponseEntityExceptionHandler.En un futuro cercano se integrará

Como resumen de lo expuesto en esta página podemos hacer el siguiente listado de casos de uso:

  • Si queremos devolver un status code HTTP concreto y un mensaje, sin importar el formato del JSON devuelto (modelo de respuesta) => Usar ResponseStatusException (punto 1).
  • Si queremos modificar el modelo de respuesta de forma global => Crear una clase que extienda DefaultErrorAttributes (punto 2).
  • Si queremos manejar una excepción de forma local en nuestro controlador REST y cambiar la respuesta para esa única excepción => Crear un método con ExceptionHandler (punto 3).
  • Si queremos manejar todas nuestras excepciones de forma global => Crear una clase con RestControllerAdvice e incluir en ella nuestros handlers (punto 4).
  • Si queremos modificar el manejo de las excepciones internas que realiza Spring => Crear una clase RestControllerAdvice que extienda ResponseEntityExceptionHandler  (punto 5).
  • Si usamos Bean Validation y queremos modificar la respuesta o el modelo devuelto por Spring => Crear un ExceptionHandler para javax.validation.ValidationException (punto 6).


Info

Próximamente estará disponible la integración con el RFC Problem, por lo que no se recomienda

...

elaborar muchos modelos

...

de respuesta propios.

Estará disponible un modelo de respuesta común para las aplicaciones FundeWebJS y se indicará cómo manejar las excepciones de forma más ágil.



Artículos Relacionados

...