Cours FastAPI : construire une API REST en Python

API avec FastAPI est un cours de niveau intermédiaire de 5 leçons (environ 3 h 33), avec 16 exercices et 15 questions de quiz. Prérequis : Python intermédiaire (fonctions, modules, POO), HTTP et API REST. Le cours demande un environnement de projet complet, prévu dans une phase ultérieure de la plateforme.

  • Python pour le web
  • Intermédiaire
  • 5 leçons
  • 3 h 33
  • 16 exercices
  • Environnement de projet complet (phase 2)

Le cours en bref

Ce cours t'apprend à concevoir une API REST professionnelle avec FastAPI. Tu déclares des routes typées, valides les entrées avec Pydantic, implémentes un CRUD complet avec des codes HTTP corrects, puis ajoutes une base de données, une authentification par clé API et des tests automatisés. Les exercices font travailler la logique en Python pur, les tâches pratiques se réalisent avec le vrai FastAPI.

Ce que tu sauras faire

  • Créer et lancer une application FastAPI et exploiter sa documentation OpenAPI
  • Déclarer et valider des paramètres de chemin, de requête et des corps JSON avec Pydantic
  • Implémenter un CRUD REST avec les bons codes de statut et des erreurs HTTPException
  • Factoriser l'accès aux données et l'authentification avec l'injection de dépendances
  • Persister des données avec SQLModel et tester l'API avec TestClient

Programme des 5 leçons

  1. 01

    Premiers pas avec FastAPI

    15 minAperçu gratuit
    • Installer FastAPI et lancer une application avec le serveur de développement
    • Déclarer des routes avec les décorateurs @app.get / @app.post
    • Explorer la documentation interactive générée automatiquement (OpenAPI)

    Application FastAPIOpérations de chemin (routes)Documentation OpenAPI

  2. 02

    Paramètres de chemin et de requête

    18 min
    • Déclarer des paramètres de chemin typés et des paramètres de requête avec valeurs par défaut
    • Ajouter des contraintes de validation avec Annotated, Path et Query
    • Comprendre la réponse 422 générée quand les données sont invalides

    Paramètres de cheminParamètres de requêteValidation automatique

  3. 03

    Corps de requête et modèles Pydantic

    20 min
    • Décrire le corps JSON d'une requête avec un modèle Pydantic et des contraintes Field
    • Contrôler la réponse avec response_model ou le type de retour, et choisir le code de statut
    • Séparer les modèles d'entrée, de stockage et de sortie pour ne jamais exposer de données sensibles

    Modèles PydanticCorps de requêteModèle de réponse

  4. 04

    CRUD complet, erreurs HTTP et routeurs

    20 min
    • Implémenter les opérations CRUD avec les bonnes méthodes et les bons codes de statut
    • Signaler les erreurs métier avec HTTPException
    • Découper une API en modules avec APIRouter

    Opérations CRUDHTTPExceptionAPIRouter

  5. 05

    Dépendances, base de données et tests

    20 min
    • Factoriser du code partagé (session de base de données, authentification) avec Depends
    • Persister des données dans SQLite avec SQLModel et des requêtes paramétrées
    • Tester une API avec TestClient et remplacer une dépendance pendant les tests

    Injection de dépendancesBase de donnéesTests avec TestClient

Projet final

API de gestion de réservations

Développe l'API d'un service de réservation (salles, créneaux, réservations) avec FastAPI et SQLModel. L'API expose un CRUD pour les salles, la création et l'annulation de réservations avec contrôle des conflits de créneaux (409), une liste paginée et filtrable, une authentification par clé API pour les routes d'écriture et une documentation OpenAPI soignée. Une suite pytest couvre les cas nominaux et les erreurs.

Livrables

  • Un dépôt avec la structure app/main.py, app/routers/, app/models.py et tests/
  • Un fichier requirements.txt (ou pyproject.toml) et un README expliquant l'installation et le lancement
  • Une suite d'au moins dix tests pytest utilisant TestClient et une base en mémoire
  • Une capture ou un export de la documentation /docs

Critères d'évaluation

  • Les routes respectent la sémantique REST et renvoient les bons codes (201, 204, 404, 409, 422, 401/403)
  • Les entrées et sorties sont décrites par des modèles distincts ; aucune donnée sensible n'est exposée
  • La session de base de données et l'authentification passent par des dépendances
  • Les conflits de réservation sont détectés de façon fiable
  • Les tests passent et couvrent les erreurs autant que les cas nominaux

Questions fréquentes

Quels prérequis pour suivre ce cours FastAPI ?

Il faut être à l'aise avec Python intermédiaire (fonctions, classes, annotations de type) et connaître les bases du HTTP et des API REST : méthodes, codes de statut, JSON.

FastAPI ou Django : lequel choisir ?

FastAPI est idéal pour des API légères, performantes et bien documentées, par exemple pour servir un modèle de machine learning. Django fournit un cadre complet (ORM, administration, gabarits) pour des applications web entières. Les deux sont abordés dans le parcours.

Ai-je besoin de connaître Pydantic ?

Non, le cours présente Pydantic v2 au fil des leçons : modèles, contraintes Field, model_dump et modèles de réponse.

Comment sont réalisés les exercices ?

Les exercices de code reproduisent la logique d'une API en Python standard et sont corrigés automatiquement. Les tâches pratiques se font avec le vrai FastAPI dans un environnement de développement en ligne.

Ce cours, raconté pour ton métier

Dis ce que tu veux savoir faire : « API avec FastAPI » prend sa place dans ton parcours, avec des exemples de ton secteur. Les notions restent celles du cours.

L'aperçu est gratuit, et les cours se suivent un par un sans payer. Le parcours ne contient que des leçons du catalogue.