Bienvenido a AluraGeek API
Esta API proporciona acceso a los datos de productos, categorías y usuarios de la tienda AluraGeek. Utiliza Express.js con MongoDB para ofrecer una interfaz RESTful para gestionar el contenido de la tienda.
Endpoints Disponibles
GET
/api/article/get-some-articles
/api/article/get-some-articles
Obtiene una selección aleatoria de artículos agrupados por categorías.
Parámetros de consulta:
categoryLimit
: Número de categorías a devolver
articlesLimit
: Número de artículos por categoría
GET
/api/article/search-articles
/api/article/search-articles
Busca artículos por nombre con coincidencia parcial.
Parámetros de consulta:
query
: Texto a buscar
articlesLimit
: Límite de resultados a devolver
POST
/api/user/register-user
/api/user/register-user
Registra un nuevo usuario en el sistema.
Cuerpo de la solicitud:
{
"email": "admin@gmail.com",
"password": "Admin123!"
}
POST
/api/user/login-user
/api/user/login-user
Inicia sesión y obtiene tokens de autenticación.
Cuerpo de la solicitud:
{
"email": "admin@gmail.com",
"password": "Admin123!"
}
POST
/api/article/insert-article
/api/article/insert-article
Crea un nuevo artículo en la base de datos.
Cuerpo de la solicitud:
{
"name": "Nombre del artículo",
"price": 299.99,
"description": "Descripción del artículo",
"image": "https://ejemplo.com/imagen.jpg",
"categories": ["ID_categoría1", "ID_categoría2"]
}
PUT
/api/article/update-article/:articleId
/api/article/update-article/:articleId
Actualiza un artículo existente por su ID.
Parámetros de ruta:
articleId
: ID del artículo a eliminar
Cuerpo de la solicitud:
{
"name": "Nombre actualizado",
"price": 349.99,
"description": "Nueva descripción",
"image": "https://ejemplo.com/nueva-imagen.jpg",
"categories": ["ID_categoría1", "ID_categoría2"]
}
DELETE
/api/article/delete-article/:articleId
/api/article/delete-article/:articleId
Elimina un artículo existente por su ID.
Parámetros de ruta:
articleId
: ID del artículo a eliminar
GET
/api/article/get-recommended-articles/:articleId
/api/article/get-recommended-articles/:articleId
Obtiene artículos recomendados basados en un artículo específico.
Parámetros de consulta:
articleId
: ID del artículo para que no lo recomiende
categoryLimit
: Número de categorías a considerar
articlesLimit
: Número de artículos por categoría
POST
/api/comment/insert-comment
/api/comment/insert-comment
Añade un nuevo comentario.
Cuerpo de la solicitud:
{
"name": "Nombre de usuario",
"message": "Mensaje del comentario"
}
Ejemplo de Uso
Este es un ejemplo de cómo usar la API para obtener artículos:
fetch('http://localhost:5000/api/article/get-some-articles?categoryLimit=2&articlesLimit=4')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Ejemplo de respuesta:
{
"data": [
{
"category": {
"id": "680b20afc0d13ce41d4f9ce8",
"name": "Consolas"
},
"articles": [
{
"_id": "680b20afc0d13ce41d4f9ce9",
"name": "PS5 Pro",
"price": 599.99,
"description": "La consola más potente de PlayStation...",
"image": "https://res.cloudinary.com/..."
}
// Más artículos...
]
}
]
}
Configuración del Entorno
Clona el repositorio
-
Instala las dependencias con
npm install
-
Crea un archivo
.env
con las siguientes variables:CONNECTION_STRING_DB=your_mongodb_url PORT=5000 SECRET_KEY=your_secret_key REFRESH_SECRET_KEY=your_refresh_key SALT_ROUNDS=10
-
Inicia el servidor con
npm run dev