4.2Web API : Flask & FastAPI
Toutes les applications modernes communiquent via des API : une application mobile, un site en React ou un autre service interrogent un serveur qui renvoie des données en JSON. Flask (minimaliste, pédagogique) et FastAPI (moderne, rapide, asynchrone) sont les outils Python de référence pour créer ces API REST.
Vous découvrez les routes, les méthodes HTTP (GET, POST…) et le format JSON. FastAPI ajoute la validation automatique des données et une documentation interactive générée toute seule — un confort remarquable. C'est la brique qui connecte votre back-end au reste du monde.
Vocabulaire de la section
- API REST
- Interface qui expose des données/actions via des URL et les méthodes HTTP, en échangeant du JSON.
- Flask
- Micro-framework web Python, minimaliste et flexible : on ajoute ce dont on a besoin. Excellent pour apprendre.
- FastAPI
- Framework moderne, très rapide, basé sur les type hints : validation auto des données et doc interactive générée.
- Route / endpoint
- Association entre une URL (/produits) et la fonction qui répond, décorée par @app.get(...) / @app.route(...).
- Méthode HTTP
- GET (lire), POST (créer), PUT (modifier), DELETE (supprimer) : les verbes des échanges web.
Qu'expose une API REST créée avec Flask ou FastAPI ?
En pratique — Créer une petite API REST
- Installez FastAPI et uvicorn (pip install fastapi uvicorn). Créez une route GET « / » qui renvoie {"message": "Bonjour"}.
- Lancez le serveur (uvicorn main:app --reload) et ouvrez /docs : admirez la documentation interactive générée automatiquement.
- Ajoutez une route GET /produits qui renvoie une liste de produits (des dictionnaires) en JSON.
- Créez une route POST qui reçoit un produit (validé par un modèle Pydantic) et l'ajoute : testez directement depuis /docs.
Points clés à retenir
- Une API REST expose des données en JSON via des URL et les méthodes HTTP.
- Flask = minimaliste et pédagogique ; FastAPI = moderne, rapide, asynchrone.
- Une route associe une URL à une fonction (@app.get(...)).
- FastAPI valide les données et génère une doc interactive (/docs) automatiquement.
Questions fréquentes
Qu'est-ce que le JSON et pourquoi est-il partout ?
JSON (JavaScript Object Notation) est un format texte structuré en clés/valeurs, léger et lisible, compris par tous les langages. C'est le format standard d'échange des API : Python le manipule comme des dictionnaires et des listes, ce qui le rend très naturel.
Pourquoi FastAPI est-il « asynchrone » et est-ce important ?
L'asynchrone (async/await, voir 5.2) permet de traiter de nombreuses requêtes simultanées sans bloquer, en attendant efficacement les opérations lentes (base de données, réseau). Pour une API qui reçoit beaucoup d'appels, c'est un gain de performance majeur — d'où la popularité de FastAPI.