Python Academy · Leçon

Configuration d’un projet FastAPI et premier endpoint

Installez FastAPI, créez un projet et écrivez votre premier endpoint GET.

Leçon 1 sur 413 étapes

Configuration d’un projet FastAPI et premier endpoint est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 4 leçons au total.

Qu’est-ce que FastAPI ?

FastAPI est un framework web Python moderne permettant de créer des APIs REST. Il fournit automatiquement une documentation OpenAPI, des modèles de requête et de réponse dont les types sont vérifiés via Pydantic, ainsi que des performances natives asynchrones.

# pip install fastapi uvicorn
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def root():
    return {"message": "Hello, FastAPI"}

Exécuter le serveur

Exécutez-le avec uvicorn. L’option --reload redémarre automatiquement le serveur lorsque le code change pendant le développement.

# main.py
from fastapi import FastAPI
app = FastAPI()

@app.get("/health")
def health(): return {"status": "ok"}

# Terminal:
# uvicorn main:app --reload
# → http://127.0.0.1:8000
# → http://127.0.0.1:8000/docs  (Swagger UI)

Méthodes HTTP

Décorez les fonctions de route avec @app.get, @app.post, @app.put, @app.delete ou @app.patch.

from fastapi import FastAPI
app = FastAPI()

@app.get("/items")
def list_items(): return []

@app.post("/items")
def create_item(): return {"id": 1}

@app.delete("/items/{item_id}")
def delete_item(item_id: int): return {"deleted": item_id}

Paramètres de chemin

Déclarez les paramètres de chemin dans la chaîne de route avec {name} et comme arguments de fonction avec des annotations de type.

from fastapi import FastAPI
app = FastAPI()

@app.get("/users/{user_id}")
def get_user(user_id: int):
    return {"user_id": user_id, "name": "Alice"}

# GET /users/42  → {"user_id": 42, "name": "Alice"}

Paramètres de requête

Les paramètres de fonction qui ne figurent pas dans le chemin deviennent des paramètres de requête.

from fastapi import FastAPI
app = FastAPI()

@app.get("/items")
def list_items(skip: int = 0, limit: int = 10, q: str | None = None):
    return {"skip": skip, "limit": limit, "q": q}

# GET /items?skip=5&limit=20&q=search

Corps de requête Pydantic

Utilisez un BaseModel Pydantic comme type du paramètre pour déclarer et valider un corps de requête JSON.

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    price: float
    in_stock: bool = True

@app.post("/items")
def create_item(item: Item):
    return {"received": item.model_dump()}

Erreurs de validation Pydantic

Si le corps de la requête ne correspond pas au schéma, FastAPI renvoie automatiquement une erreur 422 « Entité non traitable » avec un message d’erreur détaillé.

# POST /items with body {"name": 123}
# → HTTP 422 Unprocessable Entity
# {
#   "detail": [
#     {
#       "type": "string_type",
#       "loc": ["body","name"],
#       "msg": "Input should be a valid string"
#     }
#   ]
# }

Modèles de réponse

Utilisez response_model= pour déclarer ce que renvoie le point de terminaison. FastAPI valide la réponse et filtre les champs supplémentaires.

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class UserOut(BaseModel):
    id: int
    name: str

@app.get("/users/{uid}", response_model=UserOut)
def get_user(uid: int):
    return {"id": uid, "name": "Alice", "password": "secret"}  # password filtered out

Codes d’état

Définissez le code d’état de réussite par défaut avec status_code=. Importez les codes courants depuis fastapi.status.

from fastapi import FastAPI, status
app = FastAPI()

@app.post("/items", status_code=status.HTTP_201_CREATED)
def create_item():
    return {"id": 1}

# HTTP 201 Created is returned on success

HTTPException

Levez HTTPException pour renvoyer une réponse d’erreur avec un code d’état personnalisé et un message détaillé.

from fastapi import FastAPI, HTTPException
app = FastAPI()

fake_db = {1: "Alice"}

@app.get("/users/{uid}")
def get_user(uid: int):
    if uid not in fake_db:
        raise HTTPException(status_code=404, detail="User not found")
    return {"name": fake_db[uid]}

Documentation automatique

FastAPI génère automatiquement Swagger UI à l’adresse /docs et ReDoc à l’adresse /redoc à partir des annotations de vos routes.

# After starting with uvicorn:
# http://localhost:8000/docs     — Swagger UI (try the API live)
# http://localhost:8000/redoc    — ReDoc (clean docs view)
# http://localhost:8000/openapi.json  — raw OpenAPI schema

Vérification rapide

Comment déclarez-vous un paramètre de corps de requête JSON obligatoire dans FastAPI ?

Récapitulatif

Les routes FastAPI sont des fonctions décorées : les paramètres de chemin se trouvent dans l’URL, les paramètres de requête sont des arguments typés et les corps de requête sont des modèles Pydantic. Levez HTTPException pour les erreurs. Swagger UI est généré automatiquement à l’adresse /docs.

Gratuit pour commencer

Apprends Python avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
76
Leçons
320

Questions Fréquemment Posées

La leçon « Configuration d’un projet FastAPI et premier endpoint » est-elle gratuite ?

Oui — le texte complet de « Configuration d’un projet FastAPI et premier endpoint » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Configuration d’un projet FastAPI et premier endpoint » ?

Installez FastAPI, créez un projet et écrivez votre premier endpoint GET. Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Python Academy ?

Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Configuration d’un projet FastAPI et premier endpoint » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?

Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Configuration d’un projet FastAPI et premier endpoint
  2. Paramètres de chemin, paramètres de requête et corps des requêtes
  3. Injection de dépendances et authentification
  4. Endpoints asynchrones et intégration à une base de données
← Retour à Python Academy