Favoritos - bootcamp-uchile-2026/grupo-4-backend GitHub Wiki
Favoritos
Servicio encargado de gestionar la lista de productos favoritos del usuario dentro del ecommerce.
El servicio permite consultar los productos favoritos, agregar un producto a la lista y eliminarlo de ella.
Endpoints
GET /favoritos- Obtener lista de productos favoritosPOST /favoritos/{productoId}- Agregar un producto a favoritosDELETE /favoritos/{productoId}- Eliminar un producto de favoritos
Modelo
Favorito
Representa un producto incluido en la lista de favoritos.
| Campo | Tipo | Descripción |
|---|---|---|
| id | number | Identificador único del registro de favorito |
| productoId | number | Identificador del producto agregado a favoritos |
| nombre | string | Nombre del producto |
| precio | number | Precio actual del producto en pesos chilenos (CLP) |
| imagen | string | URL de la imagen del producto |
DTOs
FavoritoResponseDto
DTO utilizado para representar un producto favorito en las respuestas de la API.
| Campo | Tipo | Descripción |
|---|---|---|
| id | number | Identificador único del registro de favorito |
| productoId | number | Identificador del producto |
| nombre | string | Nombre del producto |
| precio | number | Precio actual en CLP |
| imagen | string | URL de la imagen |
Ejemplo de Response Body
{
"id": 1,
"productoId": 1,
"nombre": "Mermelada de frutilla",
"precio": 5000,
"imagen": "https://placehold.co/600x400"
}
Los endpoints para agregar y eliminar favoritos reciben productoId como parámetro de ruta; no requieren un cuerpo de solicitud.
Endpoints detallados
GET /favoritos
Obtiene la lista de productos favoritos del usuario.
Response — 200 OK
[
{
"id": 1,
"productoId": 1,
"nombre": "Mermelada de frutilla",
"precio": 5000,
"imagen": "https://placehold.co/600x400"
},
{
"id": 2,
"productoId": 3,
"nombre": "Aceite de oliva",
"precio": 9000,
"imagen": "https://placehold.co/600x400"
}
]
POST /favoritos/{productoId}
Agrega un producto a la lista de favoritos del usuario.
Path Parameters
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| productoId | number | Sí | Identificador del producto que se desea agregar. Se valida como número entero mediante ParseIntPipe. |
Ejemplo de solicitud
POST /favoritos/1
No requiere Request Body.
Response — 201 Created
{
"id": 1,
"productoId": 1,
"nombre": "Mermelada de frutilla",
"precio": 5000,
"imagen": "https://placehold.co/600x400"
}
Response — 400 Bad Request
Se produce cuando productoId no tiene un formato de número entero válido.
La estructura concreta del mensaje depende del manejo de errores configurado en la aplicación.
DELETE /favoritos/{productoId}
Elimina un producto de la lista de favoritos del usuario.
Path Parameters
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| productoId | number | Sí | Identificador del producto que se desea eliminar. Se valida como número entero mediante ParseIntPipe. |
Ejemplo de solicitud
DELETE /favoritos/1
Response — 204 No Content
No se retorna un cuerpo en la respuesta.
Response — 400 Bad Request
Se produce cuando productoId no tiene un formato de número entero válido.
La estructura concreta del mensaje depende del manejo de errores configurado en la aplicación.