[cite_start]Ce projet est une API Backend développée pour gérer un blog simple permettant la gestion des articles[cite: 38, 39].
[cite_start]Il a été réalisé dans le cadre de l'UE **INF222 - EC1 (Développement Backend) :
[cite_start]Conformément aux consignes autorisant des alternatives à Node.js[cite: 41], cette API est construite avec les technologies suivantes :
- Langage : Python 3
- [cite_start]Framework : FastAPI (Alternative performante pour le backend) [cite: 41]
- [cite_start]Base de données : SQLite (Via SQLAlchemy ORM) [cite: 41]
- [cite_start]Documentation : Swagger UI (Généré nativement par FastAPI)
[cite_start]Le code respecte une séparation claire entre les routes, les contrôleurs et les modèles[cite: 104]:
main.py: Point d'entrée de l'application et configuration globale.database.py: Configuration de la connexion à la base de données SQLite.models.py: Définition de la table des articles (Modèles de base de données).schemas.py: Validation des entrées utilisateurs (Pydantic).crud.py: Logique métier et requêtes SQL (Contrôleurs).routers/articles.py: Définition des endpoints de l'API (Routes).
[cite_start]Suivez ces étapes pour exécuter le projet localement sur une machine Linux/Windows/macOS.
- Créer et activer un environnement virtuel :
python3 -m venv venv source venv/bin/activate # Sur Windows: venv\Scripts\activate
- Installer les dépendances requises :
pip install fastapi "uvicorn[standard]" sqlalchemy pydantic - Démarrer le serveur de développement :
uvicorn main:app --reload
Une fois le serveur lancé, l'API est accessible localement. L'interface interactive Swagger permet de tester directement tous les endpoints documentés.
Accéder à Swagger UI : http://127.0.0.1:8000/docs
L'API expose les routes suivantes pour la gestion des articles:
Méthode|Endpoint|Description ||________________________________________________________________________ POST | /api/articles |Créer un nouvel article. GET | /api/articles |Récupérer la liste complète des articles. GET | /api/articles?categorie=Tech |"Filtrer les articles par catégorie, auteur ou date." GET | /api/articles/{id} |Récupérer un article spécifique via son ID. PUT | /api/articles/{id} |Mettre à jour un article existant. DELETE | /api/articles/{id} |Supprimer un article via son ID. GET | /api/articles/search?query=texte |Rechercher des articles dont le titre ou le contenu contient un texte donné.
- Créer un article (POST /api/articles) Corps de la requête (JSON) : { "titre": "Introduction à FastAPI", "contenu": "FastAPI est un framework web moderne et rapide...", "auteur": "Aether", "categorie": "Développement", "tags": "python, api, backend" }