来自REST请求的错误消息

我正在帮助为Drupal CMS设计一个RESTful API(http://drupal.org/)。 作为其中的一部分,我们希望支持给定数据对象(资​​源)上的多种格式(MIME类型)。 一切都很好。

但是,我们不确定错误处理的最佳做法。 具体来说,在403,404或500错误的情况下,我们应该以什么格式返回错误消息,以及它在什么程度上重要?

我最初的想法当然是“以所要求的格式,杜'。 但是,这意味着大量的格式化工作以确保适当的信封。 例如:

应用程序/ JSON:

{'错误':“弗拉姆斯坦爆发了,我们找不到那个东西。” }

应用/ JSON-LD + JSON

{'@context':{here here},'@error':“framistan破了,我们找不到那个东西。” }

应用程序/ XML

<error>
    <message>The framistan broke and we cannot find that object.</message>
</error>

application / atom + xml [与application / xml相同,但有20行Atom包装标记]

应用/ SVG + xml的

<svg>
    <text>The framistan broke and we cannot find that object.</text>
</svg>

等等。 当然,我们API的使用者需要知道我们如何格式化错误消息有效载荷。 这对于为系统添加新格式以及与我们的API集成而言是一个相当高的障碍。

或者,我们可以说世俗格式的错误(即不是HTML)总是返回一个未格式化的文本/纯文本字符串。 因此,如果系统在请求任何非HTML格式时死亡,您总是会回复带有正文的文本/纯文本消息“The framistan broken,并且我们无法找到该对象。”

开发起来要容易得多,而且客户端支持起来要容易得多,但这意味着请求application / atom + xml的客户端可以通过text / plain获取响应。 那是怎么回事?

有没有人遇到这个问题? 你是如何解决它的? 如何处理这种情况是否有事实上的最佳做法? 是否有某个规范指定我们可以遵循的要做什么? 基本上我想避免“尽我们自己的事情”,特别是在REST API领域。

链接地址: http://www.djcxy.com/p/45337.html

上一篇: Error messages from REST requests

下一篇: JHipster: Managing server response on client