Fond facade
Chaque fond Legifrance (Code, Juri, LODA, KALI…) a sa propre façade dans
pylegifrance/fonds/. Une façade :
- prend un
LegifranceClient(et un paramètrefondoptionnel pour sélectionner la base — ex.CODE_DATEvsCODE_ETAT) ; - expose
.search()qui retourne un builder fluide (voir/concepts/builder-pattern) ; - expose des
.fetch_*()qui retournent des fetchers (pattern builder plus focalisé).
Invariant de conception
Section intitulée « Invariant de conception »Tout ce qui n’est pas
pylegifrance/fonds/*nipylegifrance/__init__.pyest considéré comme interne.
Les utilisateur·rice·s n’instancient jamais directement les modèles sous
models/generated/ — ils·elles passent toujours par la façade, qui compose
les modèles de domaine (models/<fond>/) puis les convertit en DTO générés
(to_generated()) avant l’appel API.
Bénéfices
Section intitulée « Bénéfices »- Stabilité publique : le schéma OpenAPI de Legifrance peut changer sans casser l’API pylegifrance.
- Ergonomie : la façade offre des raccourcis (ex.
search("mot")pour les cas simples). - Enrichissement : les objets retournés par la façade ont des méthodes
métier (ex.
decision.at(date)) absentes du DTO brut.