FastAPI et frameworks modernes
Une formation de trois jours sur la construction d'APIs asynchrones haute performance avec FastAPI. Des modèles Pydantic et de la documentation automatique au déploiement en production avec Docker et Uvicorn.
Durée
3 jours (21 heures)
Format
50 pour cent présentation, 50 pour cent exercices
Prérequis
Solides fondamentaux Python requis, bases de l'asynchrone recommandées
Supports
Machines virtuelles fournies, supports de cours électroniques
Jour 1 — Fondamentaux FastAPI
Premiers pas
- Création et structure d'un projet FastAPI
- Endpoints asynchrones : async def vs def, quand utiliser chacun
- Paramètres de chemin, paramètres de requête et corps de requête
- Modèles Pydantic pour la validation des requêtes et réponses
Documentation automatique
- OpenAPI et Swagger UI : documentation automatique d'API
- Personnalisation des schémas, exemples et descriptions
- Documentation alternative ReDoc
Gestion avancée des requêtes
- Injection de dépendances : Depends, sous-dépendances, surcharges
- Validation des requêtes : en-têtes, cookies, données de formulaire, upload de fichiers
- Modèles de réponse : codes de statut, classes de réponse, réponses en streaming
Jour 2 — Base de données, Auth et Temps réel
Intégration base de données
- SQLAlchemy async : sessions asynchrones, modèles, opérations CRUD
- Tortoise ORM : alternative ORM async-first
- Migrations de base de données avec Alembic
- Pattern Repository pour un accès aux données propre
Authentification et sécurité
- Authentification JWT : génération de tokens, validation, rafraîchissement
- OAuth2 : flux par mot de passe, flux par code d'autorisation
- Contrôle d'accès basé sur les rôles et systèmes de permissions
Tâches de fond et WebSockets
- Tâches de fond : BackgroundTasks, opérations longues
- Support WebSocket : connexions, salles, diffusion
- Tests avec pytest : TestClient, tests asynchrones, fixtures
Jour 3 — Production et sujets avancés
Configuration de production
- Docker : conteneurisation d'applications FastAPI
- Uvicorn et Gunicorn : configuration de serveur ASGI
- Gestion de l'environnement et configuration
Middleware et préoccupations transversales
- Middleware : middleware personnalisé, journalisation des requêtes, mesure du temps
- Configuration CORS pour l'intégration frontend
- Stratégies de limitation de débit et de throttling
Comparaison de l'écosystème et optimisation
- Comparaison avec Flask, Starlette et Litestar
- Optimisation des performances : bonnes pratiques async, pool de connexions
- Structuration de grands projets FastAPI : routeurs, services, repositories
Projet pratique
- Construction d'une API REST complète avec authentification et base de données
- Ajout de fonctionnalités WebSocket et traitement en arrière-plan
- Conteneurisation et préparation au déploiement en production
