Para este proyecto se ocupo la libreria ffss-core-chassis para hacer uso de los modelos de error DTO, las excepciones personalizadas, controller advice y handlers, por lo cual los componentes mencionados a continuación se encontrarán en dicha librería, principalmente en los módulos common y starter.
Modelo de error
Cuando se propaguen excepciones por REST o gRPC estas se devolverán bajo el siguiente modelo:
...
args
Arreglo de errores. Cada error tiene la propiedad arg y value (llave y valor) respectivamente.
¿Como propagar una excepción?
Existen dos formas de llevar a cabo la propagación de excepciones.
...
Para esta forma se tiene que llenar un objeto de tipo ErrorResponseDTO:
...
¿Que handlers cachan las excepciones para Apis REST y gRPC?
Para peticiones de tipo REST la clase BaseControllerAdvice.java procesará los excepciones de tipo AbstractException, Exception, StatusRuntimeException, MethodArgumentNotValidException, etc.
...
Para poder visualizar las excepciones por gRPC se recomienda usar Postman ya que en la pestaña Response se nos mostrará de la siguiente manera:
...
Ejemplos de excepciones Api REST
400 - BAD REQUEST
Los errores en los campos de entrada se concatenan en una sola cadena separados por pipes.
...
500 - INTERNAL SERVER ERROR
...
401 - UNAUTHORIZED
...
Ejemplos de excepciones por gRPC
3 - INVALID ARGUMENT
Para los errores gRPC , el campo args tendrá como valor una cadena json para almacenar el arreglo de errores.
...