API de Productos ‐ Ctrl Store - NSaldarriagaV/Ctrl-Store GitHub Wiki

API de Productos - Ctrl+Store

Endpoint Público: Productos en Stock

Información General

URL Base: (https://ctrlstore-service-420478585093.us-central1.run.app/) (o http://127.0.0.1:8000 en desarrollo)

Endpoint: GET /api/products/in-stock/ completo https://ctrlstore-service-420478585093.us-central1.run.app/api/products/in-stock/

Autenticación: No requerida (público)

Formato de Respuesta: JSON


Descripción

Este endpoint retorna una lista de productos activos que están actualmente en stock, incluyendo información básica y enlace directo a la página de detalle de cada producto.


Parámetros

Parámetro Tipo Requerido Descripción
featured string No Filtrar solo productos destacados. Valores: true, 1, yes

Respuesta

Estructura

{
  "results": [
    {
      "id": 1,
      "name": "Laptop X",
      "price": 3500000.0,
      "detail_url": "/p/1/"
    }
  ]
}

Campos

Campo Tipo Descripción
id integer ID único del producto
name string Nombre del producto
price float Precio en COP (pesos colombianos)
detail_url string URL relativa para ver el detalle del producto

Ejemplos de Uso

Obtener todos los productos en stock

curl https://tu-dominio.com/api/products/in-stock/

Obtener solo productos destacados

curl https://tu-dominio.com/api/products/in-stock/?featured=true

Ejemplo en Python

import requests

response = requests.get('https://tu-dominio.com/api/products/in-stock/')
data = response.json()

for product in data['results']:
    print(f"{product['name']}: ${product['price']:,.0f}")

Ejemplo en JavaScript

fetch('https://tu-dominio.com/api/products/in-stock/')
  .then(response => response.json())
  .then(data => {
    data.results.forEach(product => {
      console.log(`${product.name}: $${product.price.toLocaleString()}`);
    });
  });

Limitaciones

  • Máximo 100 productos por consulta
  • Solo productos activos (is_active=True)
  • Solo productos con stock disponible (stock_quantity > 0)
  • Ordenados por: destacados primero, luego por fecha de creación (más recientes primero)

Códigos de Estado HTTP

Código Descripción
200 Consulta exitosa
404 Ruta no encontrada
500 Error del servidor

Notas Importantes

  1. URL del detalle: El campo detail_url es relativo. Para construir la URL completa, concaténalo con la URL base.

    • Ejemplo: Si detail_url = "/p/1/" y tu servidor está en https://tu-dominio.com, la URL completa es https://tu-dominio.com/p/1/
  2. Precios: Todos los precios están en pesos colombianos (COP) y son números decimales.

  3. Límite de resultados: El endpoint retorna máximo 100 productos.


Documentación Completa

Para más detalles, ejemplos y casos de uso, consulta: docs/API_PRODUCTOS.md


Soporte

Para preguntas o problemas con la API, contactar al equipo de Ctrl+Store.