Mettre détaillée de REPOS message d'erreur dans l'adresse HTTP en-tête Warning, bonne ou mauvaise idée?

Nous sommes de développement d'une norme de service de REPOS à l'aide de codes d'état HTTP, comme son code de réponse si quelque chose s'est mal passé. (par exemple, entrée utilisateur non valide serait de retour "400 Bad Request" pour le client)

Toutefois, nous avons estimé qu'un message d'erreur plus détaillé serait utile pour le client. (par exemple, l'entrée non valide erreur est due à X étant un nom de paramètre non reconnu)

Nous aimerions être aussi fidèle à l'adresse HTTP specs que possible, donc après l'étude de la spécification dans le RFC2616, nous envisageons de mettre le message d'erreur détaillé dans les en-Têtes HTTP, en particulier sur la L'en-tête HTTP de la zone d'alerte. Il a dit sur la RFC:

L'Avertissement général-champ d'en-tête est utilisé pour contenir des renseignements supplémentaires au sujet de l'état ou de la transformation d'un message qui pourrait ne pas être reflétés dans le message. Cette information est généralement utilisé pour avertir d'un éventuel manque de transparence sémantique à partir de la mise en cache des opérations ou transformations appliquées à l'entité corps du message.

Il semble y avoir aucune restriction sur l'utilisation de cet en-tête pour d'autres mises en garde (comme le RESTE de message d'erreur), même ceux qui sont sans rapport avec le cache avertissements que par l'intention originale de cet en-tête. Nous aimons la sémantique, et nous avons prévu d'utiliser l'299 avertissement de code, ce qui semble correspondre au projet de loi assez bien:

299 Divers persistante avertissement Le texte d'avertissement PEUVENT inclure arbitraire de l'information être présentés à un utilisateur humain, ou connecté. Un système de réception de cet avertissement NE DOIT prendre aucune des mesures automatisées.

Donc, compte tenu de l'entrée non valide erreur de cas présentées sur le haut de cette question, nous envisageons de mettre notre REPOS message d'erreur semblable à l'exemple suivant:

HTTP/1.1 400 Bad Request
Warning: 299 ServiceName "Invalid input error: X is unrecognized parameter name."

Est-ce une bonne idée ou pratique? Nous avons également constaté que certains services détaillée de ce message à X-Avertissement de la tête, mais ce ne semble pas être la norme. Nous sommes demandé ce qui serait la ruche sagesse de stackoverflow RESTE de la foule pensez à ce sujet. Est-il aussi mieux/une pratique courante pour la transmission des messages d'erreur dans le RESTE de réponses?

  • Remarque: les Avertissements peuvent s'accumuler entre les différentes requêtes en cache/proxy environnements. Probablement pas un impact sur une dynamique de service de REPOS, mais quelque chose à garder à l'esprit.
  • qu'avez-vous les gars faire à la fin?