# Endpoints

Inventario de los endpoints de todos los módulos, generado del filesystem en cada carga. La descripción sale del comentario de cabecera de cada archivo.

## Convenciones

Los endpoints son archivos PHP sueltos que devuelven JSON. **No pasan por el enrutador**: se invocan por su ruta real.

```
modules/turnero/api/get_historial.php
api/lab/save_domicilio.php
```

Cada módulo tiene su `api/_helpers.php` con lo común. Los archivos que empiezan con guión bajo son internos y no se listan acá.

### Helpers típicos

| Función | Qué hace |
|---|---|
| `db()` | Conexión PDO |
| `inputJson()` | Cuerpo de la petición como arreglo |
| `jsonOk($datos)` | Respuesta correcta |
| `jsonError($msg, $codigo)` | Error con código HTTP |
| `adminId()` | Id del usuario de la sesión |
| `requireMethod('POST')` | Corta si el método no coincide |
| `requireTurnero()` | Corta si no tiene acceso al turnero |

### Reglas al agregar uno

1. **Verifique permisos en el propio endpoint.** Que la vista haya ocultado el botón no protege nada.
2. **Resuelva la identidad en el servidor.** Para saber quién hace una acción, use `adminId()`, no un valor que mande el navegador.
3. **Consultas preparadas siempre.**
4. **Deje un comentario de cabecera** describiendo qué hace y qué recibe: es lo que aparece en la tabla de abajo.

## Inventario

{{endpoints}}

## Endpoints fuera de módulos

`api/lab/` agrupa los del laboratorio de la generación anterior — domicilios, pacientes, formularios, configuración. Siguen las mismas convenciones y usan `api/lab/_helpers.php`.
