Crear un nuevo producto
Búsqueda y Filtrado Avanzados
Lista de Productos
Mostrando 0 productos
Página 1
Documentación de la API
Modelo de Producto
Estructura de datos del modelo Producto utilizado en la API:
{
"_id": "String (MongoDB ObjectId)",
"name": "String (requerido) - Nombre del producto",
"description": "String (requerido) - Descripción detallada del producto",
"price": "Number (requerido) - Precio del producto (min: 0)",
"stock": "Number (requerido) - Cantidad disponible en inventario (min: 0, default: 0)",
"category": "String (requerido) - Categoría a la que pertenece el producto",
"imageUrl": "String (opcional) - URL de imagen del producto",
"createdAt": "Date - Fecha de creación (automático)",
"updatedAt": "Date - Fecha de última actualización (automático)"
}
GET /api/products
Obtiene todos los productos disponibles en la base de datos.
/api/products
← Haz clic para probar
// Ejemplo de respuesta
{
"status": "success",
"results": 2,
"data": {
"products": [
{
"_id": "60d21b4667d0d8992e610c85",
"name": "Smartphone XYZ",
"description": "Un smartphone de última generación",
"price": 599.99,
"stock": 50,
"category": "Electrónica",
"imageUrl": "https://ejemplo.com/imagen.jpg",
"createdAt": "2023-10-25T14:12:36.000Z",
"updatedAt": "2023-10-25T14:12:36.000Z"
},
{
"_id": "60d21b4667d0d8992e610c86",
"name": "Laptop Pro",
"description": "Laptop profesional con alto rendimiento",
"price": 1299.99,
"stock": 20,
"category": "Computadoras",
"imageUrl": "",
"createdAt": "2023-10-25T14:15:22.000Z",
"updatedAt": "2023-10-25T14:15:22.000Z"
}
]
}
}
GET /api/products/:id
Obtiene un producto específico mediante su ID único de MongoDB.
/api/products/60d21b4667d0d8992e610c85
(Reemplaza con un ID válido)
// Ejemplo de respuesta
{
"status": "success",
"data": {
"product": {
"_id": "60d21b4667d0d8992e610c85",
"name": "Smartphone XYZ",
"description": "Un smartphone de última generación",
"price": 599.99,
"stock": 50,
"category": "Electrónica",
"imageUrl": "https://ejemplo.com/imagen.jpg",
"createdAt": "2023-10-25T14:12:36.000Z",
"updatedAt": "2023-10-25T14:12:36.000Z"
}
}
}
// Ejemplo de respuesta para ID no encontrado
{
"status": "error",
"message": "Producto no encontrado"
}
POST /api/products
Crea un nuevo producto en la base de datos.
Método: POST | Content-Type: application/json
// Ejemplo de cuerpo de petición (request body)
{
"name": "Smartphone XYZ", // Requerido
"description": "Un smartphone de última generación", // Requerido
"price": 599.99, // Requerido, número > 0
"stock": 50, // Requerido, número > 0
"category": "Electrónica", // Requerido
"imageUrl": "https://ejemplo.com/imagen.jpg" // Opcional
}
// Ejemplo de respuesta exitosa (201 Created)
{
"status": "success",
"data": {
"product": {
"_id": "60d21b4667d0d8992e610c85",
"name": "Smartphone XYZ",
"description": "Un smartphone de última generación",
"price": 599.99,
"stock": 50,
"category": "Electrónica",
"imageUrl": "https://ejemplo.com/imagen.jpg",
"createdAt": "2023-10-25T14:12:36.000Z",
"updatedAt": "2023-10-25T14:12:36.000Z"
}
}
}
// Ejemplo de respuesta de error (400 Bad Request)
{
"status": "error",
"message": "El nombre del producto es obligatorio"
}
PATCH /api/products/:id
Actualiza un producto existente por su ID. Solo los campos enviados serán actualizados.
Método: PATCH | Content-Type: application/json
// Ejemplo de cuerpo de petición (request body)
{
"price": 499.99, // Solo actualizar el precio
"stock": 30 // y el stock
}
// Ejemplo de respuesta exitosa
{
"status": "success",
"data": {
"product": {
"_id": "60d21b4667d0d8992e610c85",
"name": "Smartphone XYZ",
"description": "Un smartphone de última generación",
"price": 499.99, // Precio actualizado
"stock": 30, // Stock actualizado
"category": "Electrónica", // Otros campos mantienen sus valores originales
"imageUrl": "https://ejemplo.com/imagen.jpg",
"createdAt": "2023-10-25T14:12:36.000Z",
"updatedAt": "2023-10-25T15:25:12.000Z" // Fecha de actualización modificada
}
}
}
// Ejemplo de respuesta de error (404 Not Found)
{
"status": "error",
"message": "Producto no encontrado"
}
DELETE /api/products/:id
Elimina permanentemente un producto por su ID.
Método: DELETE
// No requiere cuerpo de petición
// Ejemplo de respuesta exitosa (204 No Content)
// La respuesta no contiene cuerpo, solo el código de estado 204
// Ejemplo de respuesta de error (404 Not Found)
{
"status": "error",
"message": "Producto no encontrado"
}
Nuevas Funcionalidades
La API ahora incluye las siguientes funcionalidades adicionales:
Búsqueda y Filtrado Avanzados
Puedes filtrar productos usando múltiples parámetros:
GET /api/products?name=smartphone
- Buscar por nombreGET /api/products?category=electronics
- Filtrar por categoríaGET /api/products?minPrice=100&maxPrice=500
- Filtrar por rango de preciosGET /api/products?inStock=true
- Solo mostrar productos disponiblesGET /api/products?sort=price:asc
- Ordenar por precio ascendenteGET /api/products?page=2&limit=10
- Paginación