51 lines
1.3 KiB
Markdown
51 lines
1.3 KiB
Markdown
# INVIMA API (Version Modular)
|
|
|
|
Backend modular con:
|
|
- autenticacion por usuario/contrasena (`/api/auth/*`)
|
|
- sincronizacion INVIMA por Socrata
|
|
- catalogo optimizado con filtros y categorias canonicas
|
|
|
|
## Requisitos
|
|
- Node.js 18+
|
|
- PostgreSQL
|
|
|
|
## Instalacion
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
## Configuracion
|
|
1. Copia `.env.example` a `.env`.
|
|
2. Ajusta credenciales de BD y variables de auth.
|
|
|
|
## Ejecutar
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
## Endpoints
|
|
### Salud
|
|
- `GET /api/health`
|
|
|
|
### Auth
|
|
- `POST /api/auth/login` body: `{ "identifier": "admin", "password": "Admin123*" }`
|
|
- `GET /api/auth/me` (Bearer token)
|
|
- `POST /api/auth/logout` (Bearer token)
|
|
|
|
### INVIMA (requieren Bearer token)
|
|
- `GET /api/invima/datasets`
|
|
- `GET /api/invima/categorias`
|
|
- `GET /api/invima/filtros`
|
|
- `POST /api/invima/sync`
|
|
- `GET /api/invima/catalogo`
|
|
- `GET /api/invima/catalogo/export?format=csv|xlsx`
|
|
|
|
## Mejoras aplicadas
|
|
- Eliminado flujo legacy de `productos` y `registros`.
|
|
- Catalogo unico con categoria canonica (`categoria_canonica`) y slug (`categoria_slug`).
|
|
- Indices para busqueda:
|
|
- `GIN to_tsvector` sobre `search_text`
|
|
- indices por categoria, dataset, estado, modalidad, grupo y fechas
|
|
- trigram opcional si `pg_trgm` esta disponible
|
|
- Filtros adicionales: `grupos`, `fechas`, `onlyVigentes`, `datasets`, `categorias`.
|