API — AI proxy (Next.js)
Ces routes sont des proxys Next.js (runtime Node.js) vers un service AI externe. Elles servent d’adaptateur réseau et ne redéfinissent pas le schéma métier: le body et la réponse sont majoritairement pass-through.
Préfixe: /api/ai
Upstream base URL
Le proxy résout l’upstream dans cet ordre:
AI_LIVENESS_URLNEXT_PUBLIC_AI_LIVENESS_URLhttp://127.0.0.1:5101
Conventions de proxy
- Le proxy renvoie le status code upstream tel quel.
- Le proxy renvoie le body upstream tel quel (texte).
Content-Typeest repris depuis l’upstream, sinonapplication/json.- Pour les
POST, le proxy litreq.text()et forwarde le body tel quel. cache: no-storeest forcé sur les routes dynamiques.
Endpoints
Health
| Méthode | GET |
| Path | /api/ai/liveness/health |
| Upstream | GET {baseUrl}/health |
Réponse: pass-through.
Capabilities
| Méthode | GET |
| Path | /api/ai/liveness/capabilities |
| Upstream | GET {baseUrl}/v1/liveness/capabilities |
Réponse: pass-through.
Create session
| Méthode | POST |
| Path | /api/ai/liveness/session |
| Upstream | POST {baseUrl}/v1/liveness/session |
Headers
| Nom | Requis | Description |
|---|---|---|
Content-Type | non | Si absent, application/json est utilisé |
Body: pass-through (opaque).
Réponse: pass-through.
Submit frame
| Méthode | POST |
| Path | /api/ai/liveness/frame |
| Upstream | POST {baseUrl}/v1/liveness/frame |
Headers
| Nom | Requis | Description |
|---|---|---|
Content-Type | non | Si absent, application/json est utilisé |
Body: pass-through (opaque).
Réponse: pass-through.
Reverse geocode
| Méthode | POST |
| Path | /api/ai/reverse-geocode |
| Upstream | POST {baseUrl}/v1/reverse-geocode |
Headers
| Nom | Requis | Description |
|---|---|---|
Content-Type | non | Si absent, application/json est utilisé |
Body: pass-through (opaque).
Réponse: pass-through.