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:
Filtrado¶
Usa Django Filter para filtros complejos:
Búsqueda¶
Búsqueda full-text en campos específicos:
Ordenamiento¶
Documentación Interactiva¶
Swagger UI: /api/docs/
ReDoc: /api/redoc/
Códigos de Estado HTTP¶
200 OK: Éxito201 Created: Recurso creado204 No Content: Éxito sin contenido400 Bad Request: Error de validación401 Unauthorized: No autenticado403 Forbidden: Sin permisos404 Not Found: No encontrado500 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¶
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