Configuration d’un projet FastAPI et premier endpoint
Installez FastAPI, créez un projet et écrivez votre premier endpoint GET.
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=searchCorps 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 outCodes 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 successHTTPException
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 schemaVé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.
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
- Configuration d’un projet FastAPI et premier endpoint
- Paramètres de chemin, paramètres de requête et corps des requêtes
- Injection de dépendances et authentification
- Endpoints asynchrones et intégration à une base de données