Versiones comparadas

Clave

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

...

A continuación se va a explicar estos mecanismos desde el enfoque de los casos de uso más habituales:

  1. ResponseStatusException => Devolver modelo de respuesta estándar de forma rápida y correcta .
  2. DefaultErrorAttributes => Modificar el modelo de respuesta de forma global.
  3. Tengo
    ExceptionHandler => Manejar localmente una excepción propia y
    quiero manejarla localmente en mi controlador para no crear más clases (con modelo estándar o con modelo propio).
  4. Tengo una paquete de excepciones y las quiero manejar todas de forma global a toda la aplicación (con modelo estándar o con modelo propio).
  5. devolver el modelo de respuesta estándar o un modelo propio.
  6. ControllerAdvice => Manejar de forma global todas mis excepciones y devolver el modelo de respuesta estándar o un modelo propio.
  7. ControllerAdvice + ResponseEntityExceptionHandler => Modificar el comportamiento y el modelo de respuesta para excepciones internas capturadas por Spring Boot
    No quiero un modelo de respuesta global, pero quiero modificar el que genera Spring para excepciones internas no controladas
    .
  8. [EXTRA]
    Si uso
    Bean Validation => Modificar la respuesta si se usa para validar
    los parámetros, ¿cómo afecta?ResponseStatusException
    DefaultErrorAttributes
    ExceptionHandler
    ControllerAdvice
  9. ControllerAdvice + ResponseEntityExceptionHandler

...

  1. parámetros.


  • ResponseStatusException

          Permite lanzar una excepción pasando como parámetro un código de respuesta.
          Devuelve el modelo de respuesta estándar.
          Ventajas: rápido, código http distinto con cada
          Desventajas: Modelo de respuesta fijo

         Poner código de servicio y enlaces a gitlab.
         Poner petición y respuesta ejemplo de postman.

        (Hablar de ResponseStatus y mencionar el otro ejemplo)


  • DefaultErrorAttributes

    Definición del modelo de respuesta estándar.
    Se puede modificar y declarar para configurar un modelo de respuesta común para toda la aplicación.

    Poner código de servicio y enlaces a gitlab.
    Poner petición y respuesta ejemplo de postman.


  • ExceptionHandler


    Manejar excepciones de forma local, permite modificar valores de la respuesta http así como el modelo.

    Desventajas: solo funciona de forma local.

    Poner código de servicio y enlaces a gitlab.
    Poner petición y respuesta ejemplo de postman.


    • ControllerAdvice

Permite centralizar el manejo de excepciones para que se capturen de forma global.

Poner código de servicio y enlaces a gitlab.
Poner petición y respuesta ejemplo de postman.

  • ControllerAdvice + ResponseEntityExceptionHandler

    Permite extender y sobreescribir el manejo de las excepciones internas que realiza Spring Boot de forma automática.
    Poner listado de excepciones.

    Poner código de servicio y enlaces a gitlab.
    Poner petición y respuesta ejemplo de postman.

  • Bean Validation

    Configuración y uso de Bean Validation.
    Handlers a sobreescribir para modificar respuesta HTTP o modelo.
    Poner código de servicio y enlaces a gitlab.
    Poner petición y respuesta ejemplo de postman.

Info


...

Conclusión


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á con el RFC Problem, se recomienda no elaborar muchos modelos de respuesta ya que posiblemente deban extender Problem.

Bean Validation

...

...

Artículos Relacionados

...