feat(front) : util httpExternal + autocomplete adresse BAN (ERP-66)
- httpExternal : client dedie aux API publiques externes (URL absolue, sans cookie de session, timeout), seul point d'entree autorise pour un $fetch externe (regle frontend n°4). - useAddressAutocomplete : implementation BAN (api-adresse.data.gouv.fr), recherche ville (type=municipality) et adresse, mapping GeoJSON, throw en cas d'erreur/timeout (mode degrade cote composant). La recherche d'adresse n'impose pas type=housenumber (sinon 0 resultat tant qu'aucun numero n'est saisi) — spec-front mise a jour en consequence. - Tests Vitest : httpExternal, useAddressAutocomplete, et cas limites supplementaires pour formatPhoneFR.
This commit is contained in:
@@ -261,7 +261,8 @@ Le composant `Code postal` + `Ville` + `Adresse` est branché sur **api-adresse.
|
||||
|
||||
- Composable dédié `useAddressAutocomplete()` (à créer en M1).
|
||||
- Appel HTTP **direct depuis le front** (CORS OK), pas de proxy back.
|
||||
- Pattern : à la saisie du code postal (5 chiffres), GET `https://api-adresse.data.gouv.fr/search/?q={cp}&type=municipality` → alimente le select Ville. Sur saisie d'adresse : `?q={addr}&postcode={cp}&type=housenumber` → suggestions adresse.
|
||||
- Pattern : à la saisie du code postal (5 chiffres), GET `https://api-adresse.data.gouv.fr/search/?q={cp}&type=municipality` → alimente le select Ville. Sur saisie d'adresse : `?q={addr}&postcode={cp}` (sans filtre `type`) → suggestions adresse.
|
||||
- ⚠ **Ne pas forcer `type=housenumber`** sur la recherche d'adresse (corrigé en ERP-66) : la BAN ne renvoie un résultat de ce type qu'une fois un numéro saisi, donc une recherche par nom de rue (« boulevard du port ») renverrait **0 résultat** pendant toute la frappe. Sans filtre `type`, la BAN classe rues + numéros par pertinence — comportement d'autocomplétion attendu.
|
||||
- Cas dégradé : si l'API ne répond pas (offline, timeout), le champ Ville devient un `<MalioInputText>` libre éditable + toast d'avertissement. Validation serveur acceptera la saisie libre.
|
||||
|
||||
## Points laissés ouverts par la V0 (résolus côté back)
|
||||
|
||||
Reference in New Issue
Block a user