Estás viendo una versión antigua de esta página. Ve a la versión actual.

Comparar con el actual Ver el historial de la página

« Anterior Versión 6 Siguiente »

Esta guía pretende informar sobre las buenas prácticas a la hora de devolver mensajes de error en APIs REST con FundeWebJS, así como enumerar los mecanismos que proprociona Spring Boot para configurar y manejar estos errores.

Esta página es la equivalente FundeWebJS a la Wiki Manejo de errores en servicios REST de FundeWeb. 


La integración con el estándar RFC 7807 Problem Details for HTTP APIs, no se incluye por defecto en Spring Boot pero se encuentra en proceso de desarrollo por parte de MNCS.

Buenas Prácticas

Las principales indicaciones a la hora de construir una respuesta en un servicio REST (tanto para éxito como para error) son:

  • Usar la clase ResponseEntity<T> ( org.springframework.http) para envolver la respuesta.

  • Usar los códigos de estado de HTTP para indicar el resultado de la petición.

No es necesario conocer ni utilizar todos los códigos de estado HTTP.


Este es el subconjunto de códigos de estado aconsejado para cada situación:

  • 200 - Sólo utilizar en caso de RESPUESTA CORRECTA. No debe utilizarse cuando ocurre un error.

  • 400 - Mensaje mal formado, petición o url incorrecta.

  • 401 - Fallo de autenticación.

  • 403 - Acceso no permitido a un recurso.

  • 404 - Recurso no encontrado.

  • 405 - Método HTTP (GET, POST, PUT…) no permitido.

  • 406 - MediaType solicitado no soportado (Accept en la petición y Produces del servicio no concuerdan).

  • 415 - ContentType enviado no soportado (ContentType en la petición y Consumes del servicio no concuerdan).

  • 500 - Error general en el servidor.

  • 503 - Servidor no disponible temporalmente.

La clase ResponseEntity proporciona varios métodos estáticos y builders para construir la respuesta en nuestros endpoints en base a estos códigos de forma muy rápida.

Es aconsejable usar estos códigos de estado HTTP mediante el enumerado org.springframework.http.HttpStatus.

En el siguiente apartado se muestran ejemplos de cómo construir respuestas y usar estos códigos.

Guía detallada  


Spring Boot proporciona varios mecanismos basados en los casos de uso:

  1. Quiero devolver de forma correcta y rápida el código de respuesta adecuado con el modelo de respuesta estándar
  2. Quiero modificar el modelo de respuesta estándar y crear uno propio global para toda la aplicación
  3. Tengo una excepción propia y quiero manejarla rápidamente (con modelo estándar o con modelo propio)
  4. Tengo una paquete de excepciones y las quiero manejar de forma global (con modelo estándar o con modelo propio)
  5. No quiero un modelo de respuesta global, pero quiero modificar el que genera Spring.
  6. [EXTRA] Si uso Bean Validation para validar los parámetros, ¿cómo afecta?




  1. ResponseStatusException



  2. DefaultErrorAttributes



  3. ExceptionHandler



  4. ControllerAdvice



  5. ControllerAdvice + ResponseEntityExceptionHandler


Bean Validation

Conclusión



Artículos Relacionados


No hay ningún contenido con las etiquetas especificadas



  • Sin etiquetas