Bug #16856
ne pas poser x-error-code sans raison
0%
Description
Dans #12924 il y a eu ajout systématique d'un entête x-errror-code pour la situation où un connecteur doit pouvoir retourner un fichier quelconque (et donc y compris un fichier contenant du json, dans quel cas on ne peut pas se fier au contenu de la réponse pour déterminer la réussite ou l'échec). Sauf que la manière dont ça a été fait je ne vais pas me tordre la tête aujourd'hui pour la comprendre mais ça me semble n'importe quoi, ça marche avec @to_json('api') mais pas avec @to_json('plain') qui est le comportement par défaut de @endpoint, résultat des courses, un connecteur qui fait :
@endpoint() def plop(self, request, *args, **kwargs): return {'err': 1}
Et bien il se tape un entête x-error-code: 0.
Bref, il y a du fond à reprendre sur toute cette histoire mais pour commencer, parce que le "git revert" immédiat me semble peut-être excessif, et donc, pour commencer, ne poser l'entête que dans la situation de décorateur "json-api" (qui tape de manière automatique header_error à data.get('err', 0))).
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a presque 7 ans
- Fichier 0001-general-don-t-insert-useless-x-error-code-headers-16.patch 0001-general-don-t-insert-useless-x-error-code-headers-16.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Mis à jour par Benjamin Dauvergne il y a presque 7 ans
Je pense qu'on peut se permettre un revert parce que je ne vois pas du tout l'intérêt du truc (si on a une erreur a priori on a pas le fichier et donc on peut renvoyer un JSON contenant {'err': 1}, non ?)
Mis à jour par Frédéric Péters il y a presque 7 ans
L'idée c'est un dépôt de fichiers d'exemples de réponses, et dedans un fichier json qui montre à quoi ressemble une réponse en erreur.
Mis à jour par Frédéric Péters il y a presque 7 ans
- Fichier 0001-general-don-t-automatically-set-set-x-error-code-168.patch 0001-general-don-t-automatically-set-set-x-error-code-168.patch ajouté
Mais en fait, sur le cas limite d'un endpoint qui renverrait des fichiers, et qu'un fichier serait un fichier json, contenant une clé err: 1, le endpoint serait codé pour envoyer directement un HttpResponse, et il suffirait d'y mettre l'entête x-error-code à 0. Vraiment pas besoin de truc ailleurs.
Ce n'est pas un revert formel parce que j'ai gardé le test.
Mis à jour par Frédéric Péters il y a presque 7 ans
- Statut changé de En cours à Résolu (à déployer)
Avec une correction de typo dans le message de commit.
commit e39eeaf6d23440441117763d0051b7222c25fca4 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Sat Jun 24 22:18:30 2017 +0200 general: don't automatically set x-error-code (#16856)
Mis à jour par Benjamin Dauvergne il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Fermé
general: don't automatically set x-error-code (#16856)