Development #6622
Étendre les données du POST de l'appel à un webservice
0%
Description
Dans la configuration, avoir un widget permettant d'entrer des clés / valeurs (WidgetDict, comme dans "Règle de correspondance des attributs pour le statut administrateur"), pour pouvoir ajouter des données qui ne sont pas dans l'export JSON, ce qui donnerait par exemple :
Paramètres supplémentaires | source_url | : | [form_url] | | amount | : | [form_var_amount] | <add new line>
(une autre possibilité c'est de tout caser dans l'url même)
(J'ai fait l'erreur de mentionner deux choses dans #6446.)
Fichiers
Révisions associées
wscall: improve post data presentation (#6622)
Historique
Mis à jour par Thomas Noël il y a environ 9 ans
Yes yes yes (avec si tu as le temps l'ajout d'une case à cocher "Envoyer en plus des données du formulaire", cochée par défaut, qui, décochée, permettrait de construire des POST de toute pièce sans envoyer "toute la scrap")
Mis à jour par Frédéric Péters il y a plus de 8 ans
- Priorité changé de Normal à Haut
Plutôt une formule Python qu'une expression EZT.
(Important pour l'envoi de données supplémentaires à Maarch.)
Mis à jour par Thomas Noël il y a plus de 8 ans
Voilà une version 0 (sans tests) pour valider l'idée.
Pour « construire des POST de toute pièce » : si la case "envoyer le formdata en POST" est décochée mais que des données sont indiquées dans la conf de l'action, c'est elles seules sont envoyées par POST.
Mis à jour par Thomas Noël il y a plus de 8 ans
- Fichier 0001-wscall-allow-extra-data-on-POST-6622.patch 0001-wscall-allow-extra-data-on-POST-6622.patch ajouté
- Statut changé de Nouveau à En cours
- Assigné à mis à Thomas Noël
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a plus de 8 ans
Je préférerais qu'on décompose le export_to_json (création dict puis json.dumps), pour ne pas avoir à toucher à formdata.py pour l'ajout de données supplémentaires. En cas d'exception, faire un get_publisher().notify_of_exception()) (à terme ils devraient être dirigés vers la personne en charge.
Le code du "if self.post or self.post_data" est quand même un peu acrobatique; il devrait y avoir moyen de le structurer différemment (1/ if self.post_data, 2/ if self.post, avec dans les deux cas la création d'un dictionnaire, 3/ les mélanger de la manière appropriée, le tout avec quelques commentaires).
Mis à jour par Thomas Noël il y a plus de 8 ans
- Fichier 0001-remove-inefficient-json.loads-json.dumps-in-listing-.patch 0001-remove-inefficient-json.loads-json.dumps-in-listing-.patch ajouté
- Fichier 0002-wscall-allow-extra-data-on-POST-6622.patch 0002-wscall-allow-extra-data-on-POST-6622.patch ajouté
En deux temps, un premier patch qui prend comme excuse une optimisation pour couper en deux le export_as_json
Et dans le second, le post_data dans le webservice
Mis à jour par Frédéric Péters il y a plus de 8 ans
Je n'avais pas noté ça plus tôt mais en voyant le test, plutôt que le eval() direct, je préférerais que compute() soit utilisé (en lui ajoutant peut-être un raises=False comme paramètre).
Mis à jour par Thomas Noël il y a plus de 8 ans
- Fichier 0001-wscall-allow-extra-data-on-POST-6622.patch ajouté
- Fichier 0001-wscall-allow-extra-data-on-POST-6622.patch 0001-wscall-allow-extra-data-on-POST-6622.patch ajouté
(et j'ai ajouté un test pour le cas formdata+post_data, et complété un peu le test de POST du formdata)
Mis à jour par Thomas Noël il y a plus de 8 ans
- Fichier
0001-wscall-allow-extra-data-on-POST-6622.patchsupprimé
Mis à jour par Frédéric Péters il y a plus de 8 ans
Peut-être juste encore ajouter des infos à help/fr/wf-wscall.page.
Mis à jour par Thomas Noël il y a plus de 8 ans
- Statut changé de En cours à Résolu (à déployer)
Voilà, poussé avec un brin de doc.
commit 6c5cda54e30c7b2ac9ee545e707e25fed28965f5 Author: Thomas NOEL <tnoel@entrouvert.com> Date: Mon Aug 31 17:42:41 2015 +0200 wscall: allow extra data on POST (#6622) commit 15347ad5f6e0c15e4674b7ab7ab9e010de44b823 Author: Thomas NOEL <tnoel@entrouvert.com> Date: Mon Aug 31 17:00:19 2015 +0200 remove inefficient json.loads(json.dumps()) in listing API
Mis à jour par Thomas Noël il y a plus de 8 ans
- Fichier 0001-wscall-improve-post-data-presentation-6622.patch 0001-wscall-improve-post-data-presentation-6622.patch ajouté
Je propose d'élargir les colonnes du WidgetDict pour faciliter la lecture des "post data" (les dimensions proposées ici permettent un affichage lisible des données post data liées au connecteur Maarch de Passerelle).
Mis à jour par Frédéric Péters il y a plus de 8 ans
Bof (je préférerais que ça s'arrange via des CSS).
Mis à jour par Thomas Noël il y a plus de 8 ans
- Fichier 0001-wscall-improve-post-data-presentation-6622.patch 0001-wscall-improve-post-data-presentation-6622.patch ajouté
Et donc, la proposition de Fred (testée avec succès)
Mis à jour par Thomas Noël il y a plus de 8 ans
commit ff5a448e1239b020c1707e676aeb1dac09ae9832 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Tue Sep 8 14:21:10 2015 +0200 wscall: improve post data presentation (#6622)
Le message de commit n'est finalement pas correct, parce que le patch modifie "tous" les WidgetDict, mais voilà, trop tard. Heureusement que j'ai mis le bon auteur.
wscall: allow extra data on POST (#6622)