72 lines
1.7 KiB
Markdown
72 lines
1.7 KiB
Markdown
# ADR-008: API Design RESTful
|
|
|
|
**Estado:** Aceptada
|
|
**Fecha:** 2025-11-24
|
|
**Responsable:** Architecture-Analyst
|
|
**Proyecto:** ERP Construccion
|
|
|
|
## Contexto
|
|
|
|
APIs deben soportar:
|
|
- Operaciones CRUD para todos los modulos
|
|
- Integraciones con INFONAVIT
|
|
- App movil para asistencias
|
|
- Portal de derechohabientes
|
|
|
|
## Decision
|
|
|
|
**API RESTful** con:
|
|
- Versionado: `/api/v1/`
|
|
- JSON como formato de datos
|
|
- Autenticacion JWT
|
|
- Rate limiting para integraciones externas
|
|
|
|
```
|
|
/api/v1/
|
|
+-- /auth/ # Autenticacion
|
|
+-- /projects/ # Proyectos de construccion
|
|
+-- /phases/ # Etapas de fraccionamiento
|
|
+-- /lots/ # Lotes/viviendas
|
|
+-- /estimates/ # Estimaciones
|
|
+-- /infonavit/ # Endpoints INFONAVIT
|
|
+-- /portal/ # Portal derechohabientes
|
|
```
|
|
|
|
## Justificacion
|
|
|
|
### Referencia a Odoo
|
|
- Odoo usa JSON-RPC, pero REST es mas estandar
|
|
- Endpoints similares a Odoo models
|
|
|
|
### Especifico para Construccion
|
|
- `/portal/*` para derechohabientes (read-only)
|
|
- `/infonavit/*` para reportes regulatorios
|
|
- `/mobile/*` para app de asistencias GPS
|
|
|
|
## Consecuencias
|
|
|
|
### Positivas
|
|
- API estandar y documentada (OpenAPI)
|
|
- Facil integracion con terceros
|
|
- Compatible con app movil
|
|
|
|
### Negativas
|
|
- No tan flexible como GraphQL
|
|
- Mitigacion: Endpoints especificos para reportes complejos
|
|
|
|
## Implementacion
|
|
|
|
### Acciones Requeridas
|
|
- [x] Setup Express con versionado
|
|
- [ ] Documentar con OpenAPI/Swagger
|
|
- [ ] Implementar rate limiting
|
|
- [ ] Endpoints especificos para INFONAVIT
|
|
|
|
### Criterios de Aceptacion
|
|
- Documentacion OpenAPI completa
|
|
- Rate limiting funcional
|
|
- Integracion INFONAVIT probada
|
|
|
|
## Referencias
|
|
- [ERP Generico ADR-008](../../erp-generic/docs/adr/ADR-008-api-design.md)
|