SPB Git

spb/api-ka

Public

API-KA — plateforme centrale : collecte quotidienne des 8 services KA, historisation append-only et API publique sur www.api-ka.com

2.4 KB

# 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/health

# Composants

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 + version
  • GET /health — node (m3u96b), état DB, dernière collecte par service
  • GET /api/v1/{service} — données paginées (?page=&limit=, limit max 500)
  • GET /api/v1/{service}/latest — dernière collecte
  • GET /api/v1/{service}/date/{YYYY-MM-DD} — données d'une date précise
  • GET /api/v1/{service}/stats — enregistrements par jour, dernière réussite
  • GET /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/ -v

Plateforme légendaire API-KA — Node m3u96b — créée par Simon-Pierre Boucher (contact@spboucher.ai)

Files · 56101addce62b16ee5960fc9759bc430f8b4d4b3
Menu

Theme