Development #39723
paramétrage source de données vs autocomplétion
0%
Description
L'autocomplétion fait un appel type /api/autocomplete/7b42df45-4c73-4cb5-956f-f46e9a3a213e?q=3+rue+du
et c'est du code qui récupère l'url et fait la requête,
url = get_session().get_data_source_query_url_from_token(component) ... return misc.urlopen(url).read()
sans accès à la source de données et du coup sans pouvoir prêter attention à une configuration du cache (ou autre) de la source de données.
Fichiers
Demandes liées
Révisions associées
misc: push cache of JSON content in get_json_from_url (#39723)
It allows request_json_items, request_geojson_items and get_geojson_data
to use the cache from get_json_from_url, and cache is then also used in
AutocompleteDirectory.
Historique
Mis à jour par Frédéric Péters il y a plus d'un an
- Dupliqué par Bug #70847: Le endpoint autocomplete ne reprend pas le paramétrage des sources de donnée JSON ajouté
Mis à jour par Frédéric Péters il y a plus d'un an
- Sujet changé de cache source de données vs autocomplétion à paramétrage source de données vs autocomplétion
- Description mis à jour (diff)
Mis à jour par Benjamin Dauvergne il y a plus d'un an
- Fichier 0001-api-apply-named-ds-parameters-on-autocomplete-result.patch 0001-api-apply-named-ds-parameters-on-autocomplete-result.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Voilà de quoi appliquer data_attribute, id_attribute et text_attribute. Le besoin de cache_duration pour les résultats d'autocomplétion me semble moins évident.
Ça économise un record_error() car les erreurs requests sont déjà loggé dans request_json_items() par get_json_from_url().
Pour appliquer cache_duration on aura du mal à partager du code comme ici, car ça n'est utilisé que par NamedDataSource.get_geojson_data et _get_structured_items().
Mis à jour par Frédéric Péters il y a plus d'un an
@relecteurs : si jamais quelqu'un valide en l'état il faut en même temps créer un ticket pour gérer la question du cache.
Mis à jour par Benjamin Dauvergne il y a plus d'un an
- Fichier 0001-api-apply-named-ds-parameters-on-autocomplete-result.patch 0001-api-apply-named-ds-parameters-on-autocomplete-result.patch ajouté
- Fichier 0002-misc-push-cache-of-JSON-content-in-get_json_from_url.patch 0002-misc-push-cache-of-JSON-content-in-get_json_from_url.patch ajouté
Tentative d'honorer la configuration du cache en poussant plus bas dans la pile.
Mis à jour par Benjamin Dauvergne il y a plus d'un an
J'ai du changer les clés du cache vu que ce ne sont pas les mêmes données qui sont mises en cache (contenu JSON non transformé vs contenu transformé).
Mis à jour par Benjamin Dauvergne il y a plus d'un an
- Fichier 0001-api-apply-named-ds-parameters-on-autocomplete-result.patch 0001-api-apply-named-ds-parameters-on-autocomplete-result.patch ajouté
- Fichier 0002-misc-push-cache-of-JSON-content-in-get_json_from_url.patch 0002-misc-push-cache-of-JSON-content-in-get_json_from_url.patch ajouté
Adaptation du dernier cache autonome dans datasources.py (dans get_geojson_data).
Mis à jour par Frédéric Péters il y a plus d'un an
- assert resp2.json == {'data': [], 'err': '1'} + assert resp2.json == {'data': [], 'err': 1}
Si c'est possible j'éviterais de mêler ce changement.
+ cache_key = 'http-cache-%s' % force_str(hashlib.md5(force_bytes(url)).hexdigest())
Je garderais une mention à "datasource" dans le nom.
+ from django.core.cache import cache
Si c'est possible je le placerais avec les autres import en tête de fichier.
Mis à jour par Frédéric Péters il y a plus d'un an
- Statut changé de Solution proposée à Résolu (à déployer)
J'ai rebasé puis j'ai laissé la modification sur err, sur l'idée que personne ne regarde ça, et intégré les deux autres.
commit dddddc92c8a37d7a40d32cdb3245790548491ab7 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Fri Dec 9 16:24:00 2022 +0100 misc: push cache of JSON content in get_json_from_url (#39723) It allows request_json_items, request_geojson_items and get_geojson_data to use the cache from get_json_from_url, and cache is then also used in AutocompleteDirectory. commit a21bd6f4238cee4c7d181f434bc13469282c43fe Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Sat Oct 29 14:54:07 2022 +0200 api: apply named ds parameters on autocomplete results (#39723)
Mis à jour par Transition automatique il y a plus d'un an
- Statut changé de Résolu (à déployer) à Solution déployée
api: apply named ds parameters on autocomplete results (#39723)