Se implementó una funcionalidad para registrar logs en la base de datos. Por log se entiende cada registro que nos brinda información acerca de las requests que se realizan a nuestra aplicación.
Funcionamiento
El interceptor se configuró como implementación de la interfaz HandlerInterceptor. Los objetos de este tipo pueden actuar antes de que llegue la request al despachador (a través del preHandle) o después de procesada la request (a través de un postHandle). En este caso, decidí aplicar el primer enfoque.
A través de estos métodos, es posible acceder a la request HTTP y obtener información de ella. En este caso, se extrae y se lee el encabezado user agent, que contiene información acerca del cliente que realizó la request.
Con ello, todas las requests serán registradas en la base de datos, guardando la URI del recurso que se solicitó y el dispositivo y el browser desde el cual se realizó la request.
Tests
Se realizaron dos tests de integración para verificar el funcionamiento. Un test para comprobar el funcionamiento del interceptor como tal y otro test para verificar que, si se hace una request a cualquier endpoint, el interceptor verdaderamente actúe.
Se implementó una funcionalidad para registrar logs en la base de datos. Por log se entiende cada registro que nos brinda información acerca de las requests que se realizan a nuestra aplicación.
Funcionamiento
El interceptor se configuró como implementación de la interfaz HandlerInterceptor. Los objetos de este tipo pueden actuar antes de que llegue la request al despachador (a través del preHandle) o después de procesada la request (a través de un postHandle). En este caso, decidí aplicar el primer enfoque.
A través de estos métodos, es posible acceder a la request HTTP y obtener información de ella. En este caso, se extrae y se lee el encabezado user agent, que contiene información acerca del cliente que realizó la request.
Con ello, todas las requests serán registradas en la base de datos, guardando la URI del recurso que se solicitó y el dispositivo y el browser desde el cual se realizó la request.
Tests
Se realizaron dos tests de integración para verificar el funcionamiento. Un test para comprobar el funcionamiento del interceptor como tal y otro test para verificar que, si se hace una request a cualquier endpoint, el interceptor verdaderamente actúe.