shaapi¶
Générez des backends FastAPI épurés et complets — comme django-admin, mais pour FastAPI.
shaapi vous donne en quelques secondes un projet FastAPI propre et prêt pour la
production : SQLAlchemy async + Alembic, PostgreSQL, Redis, auth JWT, RBAC
Casbin, stockage de fichiers et une CLI shaapi multiplateforme qui pilote
docker compose. Arrêtez de câbler de l'infra — codez vos fonctionnalités.
-
Démarrage immédiat
pip install shaapi→shaapi new→shaapi up→ une API qui tourne en moins d'une minute. -
Architecture propre
Models · schemas · CRUD · services · routers. Le même découpage que dans de vraies bases de code de production — parfait pour apprendre.
-
Docker d'abord
Image slim multi-stage, hot-reload en dev, migrations en prod, le tout piloté par la CLI
shaapimultiplateforme (Windows/macOS/Linux, sans bash). -
Apprendre en lisant
Un vrai backend bien organisé. Les étudiants apprennent FastAPI façon production en explorant un projet qui tourne vraiment.
Démarrage rapide¶
Vous pouvez ensuite créer un compte admin avec shaapi auth init.
→ API sur http://localhost:8000 · Swagger sur http://localhost:8000/admin/api/v1/docs
Ce qu'il y a dedans¶
- FastAPI (async) avec une architecture en couches
- SQLAlchemy 2 + Alembic — création auto en dev, migrations en prod
- PostgreSQL + Redis (cache & limitation de débit)
- Auth JWT + RBAC Casbin — utilisateurs, rôles, permissions
- Stockage de fichiers — MinIO / S3 / GCS
- Docker — image slim multi-stage construite avec uv, hot-reload, pilotée par la CLI
shaapimultiplateforme (./docker-run.shreste une alternative shell Unix optionnelle) - Observabilité optionnelle — Prometheus, Grafana, Tempo, Loki
Sur la stack la plus récente : SQLAlchemy 2.0 · Pydantic v2 · FastAPI.
Par où continuer ?¶
-
Installer, créer un projet, le lancer.
-
Comprendre l'architecture — et pourquoi elle passe à l'échelle.
-
Les couches, le lifespan, la configuration.
-
Une API Todo authentifiée complète, pas à pas.
-
Ce que ça apporte, et comment monter en charge.
-
Mettre en production sur un VPS avec TLS.