Chapitre 3.1 : Installation de FastAPI et configuration de l'environnement
Temps d'étude : 45 minutes
1. Qu'est-ce que FastAPI ? Un hyperdrive pour API
Si Flask est une sonde de reconnaissance maniable, et Django un énorme porte-vaisseaux, alors FastAPI est un chasseur supersonique.
FastAPI est un framework web moderne et performant pour la création d'API en Python 3.7+. Ses principaux avantages sont :
- Vitesse : L'un des frameworks Python les plus rapides, comparable à NodeJS et Go.
- Simplicité : Syntaxe minimaliste et intuitive.
- Auto-documentation : Génère automatiquement une documentation interactive pour votre API.
- Typage : Utilise les annotations de type Python standard pour la validation, l'autocomplétion et la documentation.
💡 Analogie spatiale :
FastAPI est comme un "hyperdrive" pour votre vaisseau-API. Il est basé sur deux technologies :
- Starlette (le châssis du chasseur) — assure l'asynchronisme et les performances les plus élevées.
- Pydantic (l'ordinateur de bord) — est responsable de la validation des données et des paramètres.
2. Préparation du pas de tir : Environnement virtuel
Avant de construire notre chasseur, nous devons créer un laboratoire d'assemblage stérile. En Python, les environnements virtuels sont utilisés à cette fin.
Pourquoi est-ce nécessaire ? Pour que les dépendances de notre projet (moteurs, systèmes de navigation) n'entrent pas en conflit avec d'autres projets sur votre ordinateur.
Étape 1 : Créer un environnement virtuel
Ouvrez un terminal dans le dossier de votre projet (par exemple, C:\Projects\FastAPI_Fleet
) et exécutez :
venv
avec une version isolée de Python.
Étape 2 : Activer le "champ de force" du laboratoire
- Windows (PowerShell) :
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
)
- Windows (CMD) :
- macOS / Linux :
(venv)
apparaîtra au début de la ligne de commande du terminal. Cela signifie que vous êtes à l'intérieur de votre laboratoire !
3. Installation du moteur : FastAPI et Uvicorn
Nous allons maintenant installer deux composants clés :
- fastapi : Le framework lui-même.
- uvicorn : Un serveur ASGI ultra-rapide qui "lancera" notre moteur.
Exécutez dans l'environnement activé :
💡 Pourquoi
[all]
? Cela installerafastapi
,uvicorn
et d'autres paquets utiles (par exemple, pour le support des WebSockets et Jinja2) qui seront utiles pour les futures missions.
Vérification de l'installation :
Vous devriez voirfastapi
, pydantic
, starlette
, uvicorn
et d'autres paquets dans la liste.
4. Premier contact : Le fichier main.py
Créez un fichier main.py
à la racine du projet — ce sera le tableau de commande central de notre API.
Ajoutez le code suivant à main.py
:
from fastapi import FastAPI
# Créons une instance de notre "vaisseau spatial" API
app = FastAPI()
# Définissons le premier "nœud d'amarrage" (endpoint)
# C'est l'URL racine : /
@app.get("/")
def read_root():
"""
C'est le message du Centre de Contrôle de Mission, vu par tous ceux
qui se connectent à la passerelle principale.
"""
return {"message": "Bienvenue au Centre de Commande de la Flotte Spatiale !"}
@app.get("/") :
C'est un décorateur qui indique à FastAPI que la fonction read_root
doit gérer les requêtes GET
sur l'URL racine (/
).
5. Allumage ! Démarrage du serveur
Il est temps de démarrer notre hyperdrive ! Dans le terminal (avec venv
actif), exécutez :
uvicorn :
Lance le serveur Uvicorn.main :
Le fichiermain.py
(sans.py
).app :
L'objetapp = FastAPI()
, créé dansmain.py
.--reload :
"Pilote automatique". Le serveur redémarrera automatiquement à chaque modification du code.
Sortie attendue dans le terminal :
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [12345]
INFO: Started server process [12346]
INFO: Waiting for application startup.
INFO: Application startup complete.
6. Vérification de la communication avec le CCM
Votre API est maintenant en ligne et écoute sur le port 8000
!
Étape 1 : Vérification dans le navigateur
Ouvrez l'adresse http://127.0.0.1:8000
dans votre navigateur. Vous devriez voir :
Étape 2 : Un regard vers l'avenir (auto-documentation)
FastAPI vous a déjà fait deux cadeaux. Ouvrez ces URL :
http://127.0.0.1:8000/docs :
Documentation interactive Swagger UI.http://127.0.0.1:8000/redoc :
Documentation alternative ReDoc.
Vous verrez votre premier endpoint, que vous pouvez tester directement depuis le navigateur !
Quiz pour la consolidation
🚀 Conclusion du chapitre :
Vous avez réussi à assembler et à lancer le "hyperdrive" de votre nouvelle API ! Vous avez maintenant :
- 🛠️ Un environnement de développement isolé (
venv
) - 🚀 FastAPI et le serveur Uvicorn installés
- 🛰️ Une API fonctionnelle avec un seul endpoint
- 📊 Une documentation générée automatiquement
Tous les systèmes sont en ordre ! Dans le prochain chapitre, nous allons créer notre premier endpoint complet qui renverra une liste de vaisseaux spatiaux.
📌 Vérification :
- L'environnement
(venv)
est actif dans le terminal- Le serveur
uvicorn
est lancé sans erreurs- L'adresse
http://127.0.0.1:8000/docs
s'ouvre dans le navigateur⚠️ Si des erreurs :
command not found
: Assurez-vous d'avoir activé l'environnement virtuel.Port ... is already in use
: Un autre programme utilise le port 8000. Arrêtez-le ou lancez uvicorn sur un autre port :uvicorn main:app --reload --port 8001
.- Erreurs lors de l'activation de
venv
dans PowerShell : Vérifiez la politique d'exécution des scripts.