Products
Gestión de Productos
Los endpoints de productos permiten crear, consultar, actualizar y eliminar productos del inventario.
-
GET /products: Obtiene todos los productos.- Authorization: Requiere access token válido (enviado automáticamente via cookies)
- cURL Example:
curl -X GET http://127.0.0.1:9154/products \
-H "Cookie: accessToken=$ACCESS_TOKEN" \
-H "Cookie: refreshToken=$REFRESH_TOKEN"- Response Body (Éxito - 200 OK):
[
{
"id": "b5a6...",
"SKU": "SKU-0001",
"name": "Café americano",
"description": "Taza de café 240ml",
"image_url": null,
"cost_cents": 5000,
"category_id": "9f5c...",
"quantity": 10,
"price_cents": 25000
}
]- Response Body (Sin contenido - 204 No Content):
"No products found" -
GET /products/{id}: Obtiene un producto por su ID.- Authorization: Requiere access token válido
- Path Parameters:
id(string) - cURL Example:
curl -X GET http://127.0.0.1:9154/products/b5a6... \
-H "Cookie: accessToken=$ACCESS_TOKEN" \
-H "Cookie: refreshToken=$REFRESH_TOKEN" -
POST /products: Crea un nuevo producto.- Authorization: Requiere access token válido
- Request Body:
{
"SKU": "SKU-0001",
"name": "Café americano",
"description": "Taza de café 240ml",
"image_url": null,
"cost_cents": 5000,
"category_id": "9f5c...",
"quantity": 10,
"price_cents": 25000
}- cURL Example:
curl -X POST http://127.0.0.1:9154/products \
-H 'Content-Type: application/json' \
-H "Cookie: accessToken=$ACCESS_TOKEN" \
-H "Cookie: refreshToken=$REFRESH_TOKEN" \
-d '{
"SKU": "SKU-0001",
"name": "Café americano",
"description": "Taza de café 240ml",
"image_url": null,
"cost_cents": 5000,
"category_id": "9f5c...",
"quantity": 10,
"price_cents": 25000
}'- Response Body (Éxito - 201 Created):
{ "id": "b5a6...", "message": "Product added successfully" } -
PUT /products/{id}: Actualiza un producto existente.- Authorization: Requiere access token válido
- Path Parameters:
id(string) - Request Body: Igual al de creación, con los campos actualizados.
- Response Body (Éxito - 200 OK):
{ "id": "b5a6...", "message": "Product updated successfully" } -
DELETE /products/{id}: Elimina (lógico) un producto.- Authorization: Requiere access token válido
- Path Parameters:
id(string) - Response Body (Éxito - 204 No Content):
{ "id": "b5a6...", "message": "Product deleted successfully" }
Notas
- Los campos
SKU,name,cost_cents,price_cents,quantityycategory_idson requeridos. - El borrado es lógico (
is_deleted = 1).