API REST¶
Documentación completa de los endpoints de la API de Amani.
Documentación por sección¶
| Sección | Descripción |
|---|---|
| Autenticación | Login, registro, tokens JWT |
| Pacientes | CRUD de pacientes, perfil |
| Psicólogos | Gestión de psicólogos |
| Administración | Endpoints de administración |
| Citas | Agendas y citas |
| Diario Emocional | Registro de emociones |
| Progreso Emocional | Estadísticas de progreso |
| Historial Clínico | Historial médico |
| Sesiones | Sesiones de terapia |
| Mensajes | Chat entre usuarios |
| Ajustes | Preferencias de usuario |
| Direcciones | Direcciones del paciente |
| Situaciones | Catálogo de situaciones |
Credenciales de prueba¶
| Rol | Contraseña | |
|---|---|---|
| Admin | admin@amani.com | admin1234 |
| Psicólogo | psicologo@amani.com | psicologo123 |
| Paciente | paciente@amani.com | paciente123 |
Probar con Swagger¶
La documentación interactiva está disponible en:
Configuración¶
Base path¶
Autenticación¶
Todos los endpoints protegidos requieren el header:
Headers comunes¶
| Header | Valor |
|---|---|
Content-Type | application/json |
Authorization | Bearer {token} |
DTOs comunes¶
Login Request¶
Login Response¶
{
"idUsuario": 1,
"nombre": "Nombre",
"rol": "ADMIN",
"token": "eyJhbGciOiJIUzI1NiIs...",
"idPsicologo": null,
"idPaciente": null
}
Error Response¶
{
"mensaje": "Credenciales inválidas",
"timestamp": "2024-04-15T10:30:00",
"status": 401,
"error": "Unauthorized"
}
Rate limiting¶
Actualmente no hay rate limiting implementado. Para producción, considerar:
@RateLimiter(Resilience4j)@Retryablepara reintentos- Circuit breaker para servicios externos
Versionado¶
Versión actual: v1.0.0
Estructura de URLs¶
/auth/*
├── POST /login # Iniciar sesión
├── POST /register-paciente # Registrar paciente
├── POST /register-admin # Registrar admin
/api/citas/*
├── GET / # Listar citas
├── GET /{id} # Obtener cita
├── POST / # Crear cita
├── PUT /{id} # Actualizar cita
├── DELETE /{id} # Eliminar cita
└── GET /paciente/{id}/agenda # Agenda mensual
/api/psicologo/*
├── POST /{id}/foto # Subir foto
├── GET /{id}/perfil # Obtener perfil
└── GET /pacientes/{id}/psicologo # Psicólogo asignado
/api/admin/psicologos/*
├── POST /asignar-psicologo # Asignar paciente
├── GET / # Listar psicólogos
├── POST /create # Crear psicólogo
├── PUT /{id} # Actualizar
├── DELETE /{id} # Eliminar
└── GET /pacientes # Psicólogos + pacientes
Seguridad¶
Endpoints públicos (sin autenticación)¶
POST /auth/loginPOST /auth/register-pacienteGET /api/situacionesGET /api/psicologo/pacientes/*/psicologo/docs/**,/v3/api-docs/**
Endpoints de administración¶
POST /auth/register-adminGET /auth/adminsPUT /auth/pacientes/{id}/bajaGET /api/pacientes/adminGET /api/admin/**
Endpoints de psicólogo¶
GET /api/psicologo/**GET /api/psicologo/pacientes/getAll/**
Notas¶
- Todos los endpoints validan JWT y roles
- Los errores devuelven status code 4xx/5xx
- Las respuestas exitosas devuelven 200/201/204
- Paginación: no implementada (añadir si es necesario)