在现有Web API的特定HTTP错误响应中提供URI资源作为建议的合理方法是什么

时间:2015-10-14 23:11:12

标签: rest http-error hypermedia

我知道一些流行的超媒体格式,例如HAL,UBER和Collection + JSON,但我确实看到了这些格式的价值,但是如果我想在其中添加建议的URI对于现有的基于HTTP的API的错误响应的情况,这样做是否合理?我宁愿不仅仅是自己创造一些没有相似标准的东西,但另一方面我也不是在考虑时间推翻API。此外,在略读一些流行的超媒体格式的细节时,我没有看到任何具体建议如何呈现与错误案例相关的相关链接的例子。

我想支持的一个示例用例是对POST的响应行格式,其中列出的格式为/ documents / vehical-listing,其中列表缺少所有者属性,我想指出消费者到诸如/ vehic-owners之类的URL,以便他们在尝试POST车辆列表之前知道在哪里发布所有者信息,这需要注册所有者。

1 个答案:

答案 0 :(得分:2)

我相信你所寻找的是http-problem。它是用于返回正在标准化过程中的错误信息的格式。 Akamai目前正在使用它,我知道其他一些开发人员正在添加对它的支持。

以下是规范中的示例

   HTTP/1.1 403 Forbidden
   Content-Type: application/problem+json
   Content-Language: en

   {
    "type": "https://example.com/probs/out-of-credit",
    "title": "You do not have enough credit.",
    "detail": "Your current balance is 30, but that costs 50.",
    "instance": "/account/12345/msgs/abc",
    "balance": 30,
    "accounts": ["/account/12345",
                 "/account/67890"]
   }

"平衡"和"帐户"属性是特定于示例API的任意扩展。您可以添加自己的扩展程序。这将允许您添加包含指向vehicle-owners资源的URL的扩展属性。