https://github.com/mariosuarezdev/extensiones-soft-restaurant
Esta API expone endpoints para consultar ventas (cheques) y sus detalles. Está desarrollada con Django REST Framework e implementa caché en Redis.
https://github.com/mariosuarezdev/extensiones-soft-restaurant
bootstrap django django-rest-framework flask
Last synced: 3 months ago
JSON representation
Esta API expone endpoints para consultar ventas (cheques) y sus detalles. Está desarrollada con Django REST Framework e implementa caché en Redis.
- Host: GitHub
- URL: https://github.com/mariosuarezdev/extensiones-soft-restaurant
- Owner: mariosuarezDEV
- Created: 2025-08-25T17:51:59.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-09-24T18:32:41.000Z (9 months ago)
- Last Synced: 2025-10-29T07:47:16.159Z (8 months ago)
- Topics: bootstrap, django, django-rest-framework, flask
- Language: Python
- Homepage:
- Size: 330 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# API de Ventas - Cheques
Esta API expone endpoints para consultar **ventas** (cheques) y sus detalles.
Está desarrollada con **Django REST Framework** e implementa **caché en Redis/Memcached** para optimizar las consultas (con expiración de 24 horas).
## Endpoints
### 1. Listar Ventas por Fecha
Obtiene todas las ventas registradas en una fecha específica.
**URL**
```
GET /ventas/
````
**Parámetros Query**
| Nombre | Tipo | Requerido | Descripción |
|--------|--------|-----------|-------------|
| fecha | string (YYYY-MM-DD) | ✅ | Fecha de las ventas a consultar |
**Ejemplo de petición (httpie)**
```bash
http GET http://127.0.0.1:8000/ventas/?fecha==2025-08-27
````
**Respuesta exitosa (200)**
```json
[
{
"folio": 64229,
"fecha": "2025-08-27T13:45:00Z",
"cliente": "Juan Pérez",
"total": "250.50"
},
{
"folio": 64230,
"fecha": "2025-08-27T14:10:00Z",
"cliente": "María López",
"total": "320.00"
}
]
```
**Errores**
* `400 Bad Request` → Si no se envía el parámetro `fecha`.
---
### 2. Detalle de una Venta
Obtiene la información completa de una venta, incluyendo consumo (detalles) y pagos.
**URL**
```
GET /ventas/{folio}/
```
**Parámetros de Ruta**
| Nombre | Tipo | Requerido | Descripción |
| ------ | ---- | --------- | ------------------------------- |
| folio | int | ✅ | Identificador único de la venta |
**Ejemplo de petición (httpie)**
```bash
http GET http://127.0.0.1:8000/ventas/64229/
```
**Respuesta exitosa (200)**
```json
{
"Venta": {
"folio": 64229,
"fecha": "2025-08-27T13:45:00Z",
"cliente": "Juan Pérez",
"total": "250.50"
},
"Consumo": [
{
"producto": "Café Americano",
"cantidad": 2,
"precio": "30.00",
"subtotal": "60.00"
},
{
"producto": "Sandwich",
"cantidad": 1,
"precio": "50.00",
"subtotal": "50.00"
}
],
"Pago": [
{
"metodo": "Efectivo",
"monto": "110.50"
},
{
"metodo": "Tarjeta",
"monto": "140.00"
}
]
}
```
**Errores**
* `404 Not Found` → Si el `folio` no existe.
---
## Cache
* Cada petición se guarda en caché durante **24 horas (86400 segundos)**.
* Claves de caché usadas:
* `ventas_{fecha}`
* `detalle_venta_{folio}`
---
## Ejecución local
1. Levantar el servidor de Django:
```bash
python manage.py runserver
```
2. Probar los endpoints con httpie o cURL.