FastAPI 0.137 est sorti
par Makersquad ·
Date de sortie : 14 juin 2026
Documentation officielle : FastAPI 0.137.0
FastAPI 0.137.0 est sorti le 14 juin 2026. Cette version refond le fonctionnement interne de l’inclusion de routeurs, et la release est classée « Breaking Changes ».
Les nouveautés principales
Ce qui change
Avant, router.include_router(other_router) clonait chaque opération de chemin de other_router. Désormais les instances APIRouter et APIRoute sont préservées : des classes intermédiaires conservent l’information « X inclut Y et Y inclut Z » sans recréer la route finale.
Ce que ça permet
Ajouter des routes après l’inclusion d’un routeur fonctionne désormais, puisque les routes ne sont plus copiées. On peut aussi inclure un subrouter dans un mainrouter avant d’ajouter des routes au subrouter. Dans certains cas, ne plus copier les routes économise de la mémoire.
Fonctions alpha et suite
APIRouter gagne deux méthodes, .matches() et .handle(), symétriques de celles d’APIRoute. Un routeur pourrait ainsi ne retenir que les requêtes portant un en-tête précis, par exemple pour versionner une API par en-tête. Ce n’est pas encore documenté, donc pas officiellement supporté, très expérimental et susceptible de changer ou de casser. Les sous-classes personnalisées d’APIRoute et d’APIRouter ne sont pas documentées non plus, mais fonctionnent déjà. Les notes citent comme fonctions à venir les dépendances, les gestionnaires d’exceptions et les middlewares par routeur, entre autres.
Changements incompatibles
Les notes annoncent un seul changement incompatible (PR #15745), avec ses effets :
router.routesn’est plus une simple liste d’objetsAPIRoute: il peut contenir des objets intermédiaires qui portent d’autres routeurs, et forme donc un arbre.- Le code qui parcourt
router.routespour en extraire des données ne peut plus compter sur une liste plate de routes. - Le code qui parcourt
router.routespour modifier les routes voit ces nouveaux objets et ne voit plus toutes les routes de l’application.
Ce qu’il faut changer : traiter router.routes comme un détail d’implémentation interne, à ne transmettre qu’aux fonctions de FastAPI qui en ont besoin.
À retenir
FastAPI 0.137 préserve les instances de routeurs à l’inclusion, ce qui permet d’ajouter des routes après coup, mais change la forme de router.routes. Si votre code le parcourt, c’est le point à vérifier avant de mettre à jour.