Appointment Management API
Sistema robusto de agendamiento y gestión de citas clínicas. Diseñado mediante un backend corporativo con validación estricta de esquemas relacionales y un cliente SPA modular de alto rendimiento.
Topología de la Arquitectura
React 18 + Vite
SPA Tipada con TypeScript, Axios para consumo HTTP y Tailwind CSS.
ASP.NET Core 8
Validación a nivel de modelo, inyección de dependencias y ruteo asíncrono.
PostgreSQL + EF Core
Mapeo Objeto-Relacional (ORM) automatizado mediante migraciones estrictas.
Matriz de Endpoints (REST API)
/api/appointments Swagger UI Compliant | Método | Ruta del Endpoint | Operación / Impacto |
|---|---|---|
| GET | /api/appointments | Listado completo con paginación integrada. |
| GET | /api/appointments/id | Búsqueda atómica por ID único en base relacional. |
| POST | /api/appointments | Creación e inserción con validación asíncrona. |
| PUT | /api/appointments/id | Mutación completa de datos de la cita y estados. |
| DELETE | /api/appointments/id | Remoción física del registro mediante Entity Framework. |
Contrato de Datos (Esquema JSON)
Garantía de integridad de ciclo de vida para los estados transaccionales permitidos (pendiente, confirmada, cancelada).
{
"clientName": "John Doe",
"date": "2024-12-01T10:00:00",
"status": "pendiente"
} {
"id": 1,
"clientName": "John Doe",
"date": "2024-12-01T10:00:00",
"status": "pendiente",
"createdAt": "2024-10-03..."
} Estrategia de Desarrollo & Control de Calidad
Validación Dual (Client & Server Side)
La consistencia de los datos está blindada perimetralmente. El frontend intercepta cadenas vacías o fechas inválidas antes de consumir red, mientras que el backend ejecuta filtros estrictos mediante Data Annotations nativas de C#, evitando corrupciones o payloads maliciosos directo en la base PostgreSQL.
Eficiencia en Volumen: Paginación Nativa
En lugar de saturar la memoria RAM del cliente transmitiendo cientos de registros simultáneos, el controlador expone parámetros numéricos de paginación que segmentan la respuesta a nivel de base de datos gracias a las directivas de filtrado diferido en LINQ / Entity Framework Core.