Skip to content

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 :

python -m venv venv
Cette commande créera un dossier venv avec une version isolée de Python.

Étape 2 : Activer le "champ de force" du laboratoire

  • Windows (PowerShell) :

.\venv\Scripts\Activate.ps1
(Si une erreur se produit, il peut être nécessaire d'autoriser l'exécution des scripts : Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process)

  • Windows (CMD) :
.\venv\Scripts\activate.bat
  • macOS / Linux :

source venv/bin/activate
Après l'activation, (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é :

pip install "fastapi[all]"

💡 Pourquoi [all] ? Cela installera fastapi, 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 :

pip freeze
Vous devriez voir fastapi, 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 main:app --reload
Détails de la commande :

  • uvicorn : Lance le serveur Uvicorn.
  • main : Le fichier main.py (sans .py).
  • app : L'objet app = FastAPI(), créé dans main.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 :

{
  "message": "Bienvenue au Centre de Commande de la Flotte Spatiale !"
}

É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

1. FastAPI est connu pour sa/son...

2. Pourquoi un environnement virtuel (`venv`) est-il nécessaire ?

3. Quel serveur est utilisé pour exécuter FastAPI dans cette leçon ?

4. La commande `uvicorn main:app --reload` signifie :

5. Que fait le décorateur `@app.get("/")` dans FastAPI ?


🚀 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.