Projet

Général

Profil

Bug #16856

ne pas poser x-error-code sans raison

Ajouté par Frédéric Péters il y a presque 7 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
13 juin 2017
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

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

Révision e39eeaf6 (diff)
Ajouté par Frédéric Péters il y a presque 7 ans

general: don't automatically set x-error-code (#16856)

Historique

#1

Mis à jour par Frédéric Péters il y a presque 7 ans

#2

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 ?)

#3

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.

#4

Mis à jour par Frédéric Péters il y a presque 7 ans

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.

#5

Mis à jour par Benjamin Dauvergne il y a presque 7 ans

Ack.

#6

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)
#7

Mis à jour par Benjamin Dauvergne il y a plus de 5 ans

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF