Development #34808
base adresse: être compatible avec l'autocomplétion wcs en supportant q= et id=
0%
Description
En fait ce n'est pas possible nativement, car les id renvoyés par la BAN ne sont pas retrouvables ensuite.
Mais on pourrait faire cette ruse :- La recherche avec q= donne un ensemble de résultat avec des id, et pour chaque lat et lon. On remplace l'id de chaque élément par id-lat-lon
- Lorsqu'on reçoit ensuite id=id-lat-lon, on fait d'abord une recherche inverse sur lat et lon, qui va renvoyer un résultat qui, sauf bogue de la BAN, doit renvoyer l'élement (l'adresse) avec le même id, et voilà
Fichiers
Historique
Mis à jour par Thomas Noël il y a presque 5 ans
- Fichier 0001-base_adresse-normalize-endpoint-34808-DRAFT.patch 0001-base_adresse-normalize-endpoint-34808-DRAFT.patch ajouté
- Patch proposed changé de Non à Oui
J'ai joué avec l'idée et ça semble marcher très bien... mais bon, c'est assez empirique et ça me plait moyennement.
(Le code est plutôt sale, copié collé de search et reverse ; pour un vrai patch faudrait factoriser les choses et aussi mettre ce connecteur au gout du jour)
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
Et simplement mettre en cache les id pendant un certain temps (en plus de ta technique) ?
Une fois que la donnée est stockée on ne demandera plus jamais l'adresse via l'id, normalement.
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
Aussi je vois que tu fais un reverse sur lat/long mais tu ne vérifies pas si l'id retourné est le même.
Mis à jour par Thomas Noël il y a presque 5 ans
Benjamin Dauvergne a écrit :
Et simplement mettre en cache les id pendant un certain temps (en plus de ta technique) ?
Une fois que la donnée est stockée on ne demandera plus jamais l'adresse via l'id, normalement.
J'y ai pensé mais le cache de Django n'est pas partagé entre les différentes machines, faudrait cacher dans la base, j'avais plutôt envie de voir comment "faire sans".
Aussi je vois que tu fais un reverse sur lat/long mais tu ne vérifies pas si l'id retourné est le même.
Oui c'est juste un draft que je posais ici pour montrer que le principe me semble ok ; j'ai juste vérifié "à la main" ensuite plein d'adresses un peu au pif et ça marchait bien.
Ah, aussi, comme j'ai choisi le "-" en séparateur, on ne peut pas habiter à l'ouest du méridien de greenwich, comme quoi c'est vraiment un draft.
Je verrais à peaufiner l'affaire si on pense que le principe est ok (et si c'est utile).
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
Thomas Noël a écrit :
J'y ai pensé mais le cache de Django n'est pas partagé entre les différentes machines, faudrait cacher dans la base, j'avais plutôt envie de voir comment "faire sans".
En fait mettre en cache en base à la volée ne me parait pas déconnant dans un premier temps alors.
Mis à jour par Valentin Deniaud il y a environ 4 ans
- Statut changé de Nouveau à Rejeté
L'aventure continue dans #39387.