Este proyecto es un sistema para rastrear y enmascarar URLs, permitiendo obtener análisis de cuántas veces se accedió a cada enlace, así como también agregar reglas de negocio para el funcionamiento del redireccionamiento.
Para instalar las dependencias del proyecto, ejecuta el siguiente comando:
npm install
El proyecto utiliza variables de entorno para la configuración. Crea un archivo .env en la raíz del proyecto y configura las variables necesarias. Puedes encontrar un ejemplo en el archivo .env.example. El proyecto utiliza base de datos Postgresql, deberás tener creada la base de datos previamente para que funcione.
npm run start:dev
Esto iniciará el servidor en modo de desarrollo y estará disponible en http://localhost:3001.
npm run start:prod
Esto iniciará el servidor en modo de producción.
POST /links
Crea un enlace a partir de una URL válida y devuelve la URL enmascarada a utilizar.
- url (string): URL válida a enmascarar.
- password (string, opcional): Contraseña opcional para acceder al enlace.
{
"url": "https://www.ejemplo.com",
"password": "secreto"
}
{
"target": "https://www.ejemplo.com",
"link": "https://maskedurl.com/abcd",
"valid": true
}
GET /links/redirect?link=<link>&password=<password>
Redirecciona a la URL enmascarada. Si el enlace es inválido, devuelve un error 404.
- link (string): Enlace enmascarado.
- password (string, opcional): Contraseña si se requiere.
GET /links/:id/stats
Obtiene las estadísticas de cantidad de veces que se redirigió a un enlace.
- id (string): ID del enlace.
{
"count": 5
}
PUT /links/invalidate?link=<link>
Invalida un enlace, haciendo que devuelva un error 404 al intentar acceder.
- link (string): Enlace a invalidar.
Recuerda reemplazar y con los valores adecuados en las descripciones de los endpoints.