Saltar a contenido

🔗 API (Laravel)

La API de CORDIA es el núcleo del sistema. Está construida sobre Laravel, y es responsable de la gestión de todos los datos del sistema: entradas léxicas, acepciones, variantes, usuarios, zonas dialectales, fuentes, y más.


⚙️ Características principales

  • Basada en Laravel 12 + Laravel Sail
  • Arquitectura RESTful
  • Autenticación mediante JWT
  • Protección por middleware, control de roles y permisos
  • Documentada automáticamente con Scribe y Swagger UI
  • Soporte para relaciones complejas y filtros avanzados

📁 Organización del código

app/api-laravel/
├── app/
│   ├── Http/Controllers/      # Controladores API
│   ├── Models/                # Modelos Eloquent
│   ├── Policies/              # Políticas de acceso
│   └── Services/, Helpers/    # Lógica auxiliar
├── routes/
│   └── api.php                # Rutas de la API
├── database/
│   ├── migrations/            # Migraciones de tablas
│   ├── seeders/               # Carga de datos iniciales
│   └── factories/             # Factories de test
└── config/, resources/, tests/, etc.

🔐 Autenticación y seguridad

  • La autenticación se gestiona mediante JSON Web Tokens (JWT).
  • Los usuarios obtienen un token tras iniciar sesión (/login).
  • Cada llamada posterior debe incluir el encabezado:
Authorization: Bearer {token}
  • El acceso a cada recurso está protegido por políticas según rol, permisos y tipo de usuario.

🧪 Ejemplo de endpoints

GET /entries                         # Lista de entradas
GET /entries/{id}                   # Ver entrada específica
POST /entries                       # Crear nueva entrada
PUT /entries/{id}                   # Editar entrada
DELETE /entries/{id}                # Eliminar entrada

Hay endpoints adicionales para variantes, acepciones, zonas, hablantes, fenómenos, fuentes, usuarios, etc.


🧬 Conexión con otros módulos

  • El panel técnico (Filament) y el editor Vue consumen esta API directamente.
  • Los endpoints están protegidos por CORS y autenticación.
  • Los datos de prueba se insertan mediante seeders y pueden consultarse vía la API en la raíz (por ejemplo, /entries).

📘 Documentación de la API

Puedes consultar la documentación completa de endpoints generada automáticamente:

También puedes descargar la colección de Postman desde la misma interfaz.


Para conocer cómo usar los endpoints en profundidad, consulta el archivo api-uso.md.