API-KA — Plateforme centrale de l'écosystème KA
API-KA collecte, sauvegarde et centralise chaque jour les données des 8 services KA (lou-ka, immo-ka, food-ka, auto-ka, fabri-ka) dans une base PostgreSQL unifiée, puis les expose via une API publique sur www.api-ka.com (tunnel ngrok).
Tout le déploiement se fait sur le node m3u96b (/opt/api-ka/). Chaque service
vérifie le hostname au démarrage et refuse de tourner ailleurs en production.
Démarrage rapide
bash
# Déploiement complet sur m3u96b
bash scripts/deploy_m3u96b.sh
# Initialiser la base
python -m src.database.db --init
# Collecte manuelle immédiate (tous les services)
python -m src.scheduler.daily_job --now
# Backfill d'une date manquée
python -m src.scheduler.backfill --date 2026-08-15
# API en local (dev)
uvicorn src.api.main:app --reload --port 8000
# Tunnel public
bash scripts/start_ngrok.sh
# Vérifier la santé
curl http://127.0.0.1:8000/healthComposants
| Composant | Rôle |
|---|---|
src/collectors/ |
8 collecteurs (fetch → validate → checksum → insert → backup → log run), retry 3× avec backoff 30s → 2min → 10min |
src/scheduler/daily_job.py |
Job quotidien à 02:00 (APScheduler), collecteurs en parallèle et indépendants |
src/scheduler/backfill.py |
Rattrapage automatique des dates manquées (7 derniers jours) |
src/api/ |
FastAPI sur 127.0.0.1:8000, exposée uniquement via ngrok (www.api-ka.com) |
src/utils/backup.py |
Dump quotidien horodaté par service (data/backups/YYYY-MM-DD/, rétention 90 j) |
systemd/ |
apika-api, apika-scheduler, apika-ngrok (Restart=always) |
Endpoints
GET /— statut de la plateforme + versionGET /health— node (m3u96b), état DB, dernière collecte par serviceGET /api/v1/{service}— données paginées (?page=&limit=, limit max 500)GET /api/v1/{service}/latest— dernière collecteGET /api/v1/{service}/date/{YYYY-MM-DD}— données d'une date préciseGET /api/v1/{service}/stats— enregistrements par jour, dernière réussiteGET /api/v1/runs— historique des collectes (filtrable par service/statut)
{service} ∈ louka, immoka, foodka, autoka, fabrika, restoka, sortika, creaka.
Tests
bash
pip install -r requirements.txt
pytest tests/ -vPlateforme légendaire API-KA — Node m3u96b — créée par Simon-Pierre Boucher (contact@spboucher.ai)