Files
micro-api/architecture.md
T

55 lines
2.2 KiB
Markdown

# Architecture — MicroAPI
## Stack
| Couche | Technologie | Justification |
|---|---|---|
| Framework | FastAPI | Performant, async, documentation auto (Swagger) |
| Serveur | Uvicorn | ASGI, production-ready |
| Runtime | Python 3.11+ | Écosystème riche, gratuit |
| Base de données | SQLite (phase 1) | Zéro ops, migration vers PostgreSQL si besoin |
| Conteneurisation | Docker | Isolation, déploiement reproductible |
| Reverse proxy | Caddy (existant) | Routing, HTTPS |
| Paiements | Lemon Squeezy | MoR, 0€/mois, gère TVA |
| Emails | Resend (gratuit 3K/mois) | Transactionnel |
| Monitoring | Uptime Kuma (existant) | Health checks |
## Structure des dossiers
```
micro-api/
├── main.py # Application FastAPI
├── requirements.txt # Dépendances Python
├── Dockerfile # Image Docker
├── docker-compose.yml # Stack de déploiement
├── README.md # Documentation utilisateur
├── ARCHITECTURE.md # Ce document
├── tests/ # Tests unitaires & intégration
│ └── test_health.py
├── app/ # Code applicatif (à venir)
│ ├── routers/ # Endpoints API
│ ├── services/ # Logique métier (transcription, etc.)
│ ├── models/ # Modèles de données
│ └── utils/ # Utilitaires
└── data/ # Données persistantes (volumes)
```
## Principes
1. **Stateless** — Chaque requête est indépendante, pas de session serveur
2. **Async-first** — Tous les endpoints sont async par défaut
3. **API-first** — Documentation Swagger automatique sur `/docs`
4. **12-factor** — Configuration par variables d'environnement
5. **Zéro coût opérationnel** — Whisper local, pas d'API externe payante
## Roadmap technique
1. ✅ Scaffold (health check, structure)
2. ⬜ Endpoint /api/transcribe (Whisper local, upload fichier)
3. ⬜ Endpoint /api/summarize (Résumé de texte)
4. ⬜ Endpoint /api/convert (Markdown→PDF, JSON→CSV)
5. ⬜ Authentification API keys
6. ⬜ Rate limiting + quotas
7. ⬜ Intégration Lemon Squeezy (paiements)
8. ⬜ Dashboard utilisateur