Créer des API avec Python

Objectifs

  • Maîtriser les principes REST et concevoir des API robustes avec FastAPI
  • Valider et sécuriser les données avec Pydantic et l'authentification JWT
  • Connecter une API à une base de données et exposer un modèle d'IA en production
Tarif inter / participant
1 950 € HT
📄 Programme (PDF) 📅 Voir les dates

Public visé

  • Développeurs Python
  • Data scientists et ML engineers
  • Profils techniques en ESN ou cabinets de conseil

Prérequis

  • Maîtrise de Python intermédiaire (fonctions, classes, décorateurs, gestion d'exceptions)
  • Bases du typage Python (type hints) et notions de HTTP (méthodes, codes de statut)
  • Aisance avec Git et la ligne de commande

Méthodes pédagogiques

  • Apports théoriques : exposés interactifs avec schémas et cas concrets
  • Live coding : construction progressive d'une API réelle tout au long des 3 jours
  • Pédagogie par la pratique : 70 % du temps consacré à la mise en pratique
  • Pédagogie par l'erreur : analyse des anti-patterns fréquents en production
  • Projet fil rouge : chaque participant construit une API complète et déployée
  • Support de cours et template FastAPI production-ready remis aux stagiaires
  • QCM mi-parcours (25 questions) et QCM final (30 questions) avec présentation du projet

Programme détaillé

Jour 1 — Fondamentaux REST et premiers endpoints FastAPI

  • Rappels REST : ressources, méthodes HTTP, codes de statut
  • Bonnes pratiques de design d'API : nommage, versioning, pagination
  • Pourquoi FastAPI : comparaison avec Flask et Django REST Framework
  • Installation et structure d'un projet FastAPI
  • Premier endpoint GET : route, path parameters, query parameters
  • Endpoints POST, PUT, DELETE : corps de requête
  • Organisation du code : routers, modules, structure recommandée
  • Introduction à Pydantic v2 : modèles, types, validation automatique
  • Validateurs personnalisés : field_validator, model_validator
  • Réponses typées avec response_model
  • Gestion des erreurs : HTTPException, handlers personnalisés
  • Codes de statut HTTP : 201, 204, 400, 404, 422, 500
  • Documentation automatique OpenAPI : Swagger UI et ReDoc
  • Enrichir la doc : summary, description, tags, examples

Jour 2 — Base de données, sécurité et asynchrone

  • Panorama des ORM : SQLAlchemy 2.0, SQLModel, Tortoise ORM
  • Configuration d'une base PostgreSQL locale et cloud
  • Mise en place de SQLAlchemy 2.0 avec FastAPI
  • Dependency injection : Depends pour la session de base de données
  • Opérations CRUD complètes avec une base relationnelle
  • Migrations de schéma avec Alembic : principes et premier cas
  • Mode asynchrone avec asyncpg et SQLAlchemy async
  • Transactions et gestion d'erreurs au niveau de la base
  • Authentification : API Key, OAuth2 Password Bearer
  • JWT (JSON Web Token) : génération, validation, refresh
  • Dépendances de sécurité : patterns réutilisables
  • CORS : comprendre et configurer correctement
  • Async en Python : principes, async / await dans FastAPI
  • Tests de charge : wrk, Locust, mesure de concurrence

Jour 3 — Exposer des modèles IA, tests et déploiement

  • Exposer un modèle de ML via une API FastAPI
  • Chargement du modèle au démarrage : lifespan events
  • Endpoint de prédiction : validation d'entrée, réponse typée
  • Cas pratique : exposer un modèle scikit-learn ou HuggingFace
  • Intégration d'une API LLM externe (OpenAI, Claude) via FastAPI
  • Streaming des réponses : Server-Sent Events avec FastAPI
  • Tests unitaires avec pytest et TestClient
  • Tests d'intégration avec httpx AsyncClient
  • Fixtures, mocks, base de données de test
  • Couverture de code et CI : GitHub Actions
  • Consommer l'API depuis un front JavaScript : fetch, axios
  • Consommer l'API depuis un outil no-code : Make, Zapier, n8n
  • Déploiement de l'API : uvicorn, gunicorn, workers
  • Dockeriser son API : Dockerfile minimaliste
  • Déploiement sur Render, Railway et comparaison Azure App Service
  • Configuration production : logging, gestion des secrets, health check
Retour en haut