Saltar a contenido

API REST

El Sistema A3 expone una API RESTful construida con Django REST Framework para acceso programático a los datos.

Base URL

Desarrollo: http://localhost:8000/api/ Producción: https://www.sistemaa3.com/api/

Autenticación

La API utiliza autenticación basada en sesiones de Django.

# Login
POST /api/auth/login/
{
  "username": "usuario",
  "password": "contraseña"
}

# Logout
POST /api/auth/logout/

Formato de Respuesta

Todas las respuestas son en formato JSON:

{
  "count": 100,
  "next": "http://api.example.com/api/items/?page=2",
  "previous": null,
  "results": [...]
}

Endpoints Principales

Inventario

GET    /api/inventario/casas/              # Listar casas
POST   /api/inventario/casas/              # Crear casa
GET    /api/inventario/casas/{id}/         # Detalle casa
PUT    /api/inventario/casas/{id}/         # Actualizar casa
DELETE /api/inventario/casas/{id}/         # Eliminar casa

Filtros disponibles: - ?plaza=MONTERREY - ?disponible=true - ?precio_min=500000&precio_max=1000000 - ?search=hacienda

Apartados

GET    /api/apartados/                     # Listar apartados
POST   /api/apartados/                     # Crear apartado
GET    /api/apartados/{id}/                # Detalle apartado
PUT    /api/apartados/{id}/                # Actualizar apartado
POST   /api/apartados/{id}/solicitar-obra/ # Solicitar obra

Clientes

GET    /api/clientes/                      # Listar clientes
POST   /api/clientes/                      # Crear cliente
GET    /api/clientes/{id}/                 # Detalle cliente
PUT    /api/clientes/{id}/                 # Actualizar cliente

Tickets

GET    /api/tickets/                       # Listar tickets
POST   /api/tickets/                       # Crear ticket
GET    /api/tickets/{id}/                  # Detalle ticket
PUT    /api/tickets/{id}/                  # Actualizar ticket
POST   /api/tickets/{id}/comentar/         # Agregar comentario

Comprobaciones

GET    /api/comprobaciones/                # Listar comprobaciones
POST   /api/comprobaciones/                # Crear comprobación
POST   /api/comprobaciones/{id}/aprobar-contabilidad/
POST   /api/comprobaciones/{id}/aprobar-tesoreria/

Paginación

La API pagina automáticamente los resultados:

GET /api/casas/?page=2&page_size=50

Filtrado

Usa Django Filter para filtros complejos:

GET /api/casas/?plaza=MTY&disponible=true&precio_min=500000

Búsqueda

Búsqueda full-text en campos específicos:

GET /api/casas/?search=hacienda

Ordenamiento

GET /api/casas/?ordering=-fecha_creacion
GET /api/casas/?ordering=precio_venta

Documentación Interactiva

Swagger UI: /api/docs/ ReDoc: /api/redoc/

Códigos de Estado HTTP

  • 200 OK: Éxito
  • 201 Created: Recurso creado
  • 204 No Content: Éxito sin contenido
  • 400 Bad Request: Error de validación
  • 401 Unauthorized: No autenticado
  • 403 Forbidden: Sin permisos
  • 404 Not Found: No encontrado
  • 500 Internal Server Error: Error del servidor

Ejemplos

Crear un Cliente

curl -X POST https://www.sistemaa3.com/api/clientes/ \
  -H "Content-Type: application/json" \
  -H "Cookie: sessionid=..." \
  -d '{
    "tipo_persona": "FISICA",
    "rfc": "XAXX010101000",
    "nombre": "Juan",
    "apellido_paterno": "Pérez",
    "apellido_materno": "García",
    "plaza": "MONTERREY"
  }'

Listar Casas Disponibles

curl https://www.sistemaa3.com/api/inventario/casas/?disponible=true&plaza=MTY

Rate Limiting

No hay rate limiting actualmente, pero se recomienda no exceder 100 req/min.


Ver también: - Integración SAP - Referencia de Endpoints - Autenticación