Development #2747
compatibilité wcs quand on cherche une seule réponse
90%
Description
Cas classique : dans un workflow de wcs, je désire obtenir le nom d'un centre de gestion en fonction d'un code postal.
Ce qui serait simple :- Je mets un CSV dans passerelle
- Dans le workflow de wcs, je fais un appel (wscall #2746) sur http://.../departement/json?q=[form_var_cp] dont le résultat sera stocké dans une variable wfcp
- En retour, j'ai une variable de substitution wfcp_response_data = "code-du-centre"
- je peux utiliser cette variable dans des tests, des messages, etc.
- passerelle renvoie ça :
{"data": [{"text": "14117", "id": "BESSIN"}], "err": 0}
- et donc dans le formdata on a ça :
u'wfcp_response_data': [{u'id': u'BESSIN', u'text': u'14117'}], u'wfcp_response_err': 0,
Ce qui n'est pas utilisable dans ezt et difficilement compréhensible dans des conditions de jump et autres...
Il faudrait donc disposer d'une façon d'interroger passerelle différente... Autre chose que "?q=..." ?
Fichiers
Révisions associées
Historique
Mis à jour par Thomas Noël il y a environ 11 ans
Je propose d'ajouter la possibilité d'obtenir un champ "value" d'un CSV avec une interrogation "json?key=...".. Je tente un patch tout à l'heure.
Mis à jour par Thomas Noël il y a environ 11 ans
- Fichier id-param-for-csv-datasource.diff id-param-for-csv-datasource.diff ajouté
Voilà. On peut faire un json?id=... dans une source fichier CSV, ça renvoie la valeur correspondant à l'id cherché.
Exemple : http://localhost:8000/data/clic/json?id=14117 renvoie {"data": "BESSIN", "err": 0}
Attention, puisque "get_data" ne renvoie plus forcément une liste, j'ai supprimé les "sorted()" dans views.py. Si une source doit renvoyer un résultat trié, elle doit le faire dans son get_data().
Ca me semble assez logique, mais ça a peut-être des effets de bords ?...
Mis à jour par Thomas Noël il y a environ 11 ans
- Fichier get-by-id.diff get-by-id.diff ajouté
Suite à discussion avec Fred, utilisation d'une URL /<datasource>/<id>/json pour faire un GET ou un POST sur une id donnée.
(testé sur une passerelle installée en local:8000 sur calvados.dev)
Mis à jour par Thomas Noël il y a environ 11 ans
- % réalisé changé de 0 à 90
Appliqué par commit 625b2a27d8cceeaac7789d27197a2b10a9a6ef03.
Mis à jour par Thomas Noël il y a environ 11 ans
- Statut changé de Solution déployée à Résolu (à déployer)
Mis à jour par Benjamin Dauvergne il y a presque 6 ans
- Statut changé de Résolu (à déployer) à Fermé
add /datasource/<id>/json view (get_data_by_id) (fix #2747)