Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

¿Que handlers cachan las excepciones para Apis Rest y gRPC?

Para peticiones de tipo Rest REST la clase BaseControllerAdvice.java procesará los excepciones de tipo AbstractException, Exception, StatusRuntimeException, MethodArgumentNotValidException, etc.

Para peticiones de tipo gRPC la clase GlobalExceptionHandlerInterceptor.java será la encargada de cacharlas en primera instancia y posterior se procesaran en la clase ExceptionHandlerStrategy.java. Aqui se procesaran las peticiones de tipo AbstractException, Exception y StatusRuntimeException principalmente

Estructura de excepcion para api REST

Code Block
{
    "message": "Invalid requests",
    "code": "INVALID_PARAMETERS",
    "description": "Invalid requests",
    "args": [
        {
            "arg": "REASON",
            "value": "customerNumber is required"
        }
    ],
    "status": "400 BAD_REQUEST"
}

Estructura de excepción para api gRPC

Code Block
domain: Mirror Strategy
  metadata
    args: []
    code: FIELD_LENGTH_VALIDATION_FAILED
    description: One or more fields length validation failed.
    message: VPLVO2472S :  XML ELEMENT DATA EXCEEDSCARD_NBR                                              
    status: 400 BAD_REQUEST
@type: type.googleapis.com/google.rpc.ErrorInfo

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 que llegasen a tener 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.

...

13 INTERNAL

...

Si la excepción se propaga directamente de un throw new <Exception>, entonces el valor que tenga