corps
corps
¶
Les corps de requête que PLUSIEURS modules de routes se partagent.
Un seul pour l'instant, et il est ici pour une raison précise.
routes.py définit ses modèles au niveau du module, et finances_routes.py
aussi — mais ce dernier déclare ses routes DANS une fonction,
register_finances_routes(), à laquelle DeleteBody arrivait en
paramètre. Or le fichier porte from __future__ import annotations : toute
annotation devient une chaîne, et FastAPI résout "DeleteBody" contre les
globales du MODULE où la fonction est définie — jamais contre ses variables
locales. Le nom n'y était pas.
Conséquence, constatée le 26 août 2026 : GET /openapi.json rendait 500
sur tout le dépôt, et la documentation d'API était donc cassée sans que
personne ne s'en aperçoive, parce que rien ne la demandait. Les six routes
delete_* des Finances suffisaient à emporter le schéma entier.
Un module partagé plutôt qu'une classe dupliquée dans chaque fichier : deux
classes de même nom produiraient deux schémas OpenAPI, DeleteBody et
DeleteBody-Input, pour une seule et même forme. Et plutôt qu'un import
croisé entre routes.py et finances_routes.py, qui ne tiendrait que
tant que personne n'importe le second en premier.