Programacion-Avanzada-UTN-FRVM / example-git

Proyecto de ejemplo para el uso de "git" en la gestión de proyectos de software.
0 stars 10 forks source link

feat: http logs #13

Closed EzeSosa closed 1 month ago

EzeSosa commented 1 month ago

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.