Bienvenue dans la documentation de l'API de gestion de tâches. Ce projet a été restructuré pour suivre une architecture professionnelle, modulaire et sécurisée, idéale pour une application d'entreprise.
L'architecture suit une séparation claire des responsabilités (Clean Architecture / MVC simplifié) :
CRUD_API_DICT/
├── app/
│ ├── api/
│ │ └── endpoints/ # Les routes (URLs) de l'API. C'est ici que sont définis les points d'entrée (GET, POST, etc.).
│ ├── core/ # Le cœur de l'app : configuration, connexion BDD, sécurité.
│ ├── crud/ # (Create, Read, Update, Delete) : Contient toute la logique métier et les requêtes BDD.
│ ├── models/ # Les modèles SQLAlchemy qui définissent les tables de la base de données.
│ ├── schemas/ # Les modèles Pydantic pour la validation des données entrantes et sortantes.
│ └── main.py # Le point d'entrée principal qui lance l'application FastAPI.
├── legacy/ # Contient les anciens fichiers (backup).
├── .env # Fichier contenant les secrets (non partagé sur Git).
├── .gitignore # Liste des fichiers à ignorer par Git.
├── requirements.txt # Liste des librairies Python nécessaires.
└── README.md # Ce fichier de documentation.
- Python 3.8 ou supérieur
- PostgreSQL installé et configuré
Installez les librairies listées dans requirements.txt :
pip install -r requirements.txtLe projet utilise un fichier .env pour sécuriser les informations sensibles. Assurez-vous que ce fichier existe à la racine du projet avec le contenu suivant :
DB_USER=postgres
DB_PASSWORD=votre_mot_de_passe
DB_HOST=localhost
DB_PORT=5432
DB_NAME=todo_dbNote : Ne jamais commiter ce fichier
.envsur GitHub ou GitLab.
Pour lancer le serveur de développement avec rechargement automatique :
uvicorn app.main:app --reloadL'API sera accessible à l'adresse : http://127.0.0.1:8000
FastAPI génère automatiquement une documentation interactive. Une fois le serveur lancé, visitez :
- Swagger UI : http://127.0.0.1:8000/docs
- ReDoc : http://127.0.0.1:8000/redoc
- ORM : SQLAlchemy est utilisé pour interagir avec la base de données PostgreSQL.
- Migration : Les tables sont créées automatiquement au démarrage via
Base.metadata.create_all(dansapp/main.py).
Les routes sont définies dans app/api/endpoints/todos.py :
GET /todos/: Récupérer toutes les tâches.GET /todos/{id}: Récupérer une tâche spécifique.POST /todos/: Créer une nouvelle tâche.PUT /todos/{id}: Mettre à jour une tâche existante.DELETE /todos/{id}: Supprimer une tâche.
Le middleware CORS est configuré dans app/main.py pour autoriser les requêtes provenant de n'importe quelle origine (allow_origins=["*"]), ce qui est utile pour le développement mobile (Flutter) ou frontend.
- Définir le modèle de données dans
app/models/. - Créer les schémas de validation dans
app/schemas/. - Implémenter la logique métier dans
app/crud/. - Exposer la fonctionnalité via une route dans
app/api/endpoints/.