1

我知道一些流行的超媒体格式,例如 HAL、UBER 和 Collection+JSON,我确实看到了这些格式的价值,但是如果我想在出现错误响应的情况下简单地添加建议的 URI现有的基于 HTTP 的 API 这样做的合理方式是什么?我宁愿不只是自己编造一些没有标准的东西,但另一方面,我也不打算在那个时候推翻 API。此外,在浏览一些流行的超媒体格式的细节时,我没有看到任何具体建议如何呈现与错误案例相关的相关链接的示例。

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

4

1 回答 1

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"]
   }

“balance”和“account”属性是特定于示例 API 的任意扩展。您可以添加自己的扩展。这将允许您添加包含指向vehicle-owners资源的 URL 的扩展属性。

于 2015-10-19T15:24:53.177 回答