REST API响应部分成功

时间:2017-08-01 16:15:14

标签: rest http-response-codes

我有一个API可以执行一些批量处理任务。让我们说它确实命名了一些资源。

我批量传递了7个请求,其中5个成功更新,2个失败。

我的问题是如何处理响应。使用HTTP,我无法同时返回成功和错误。

有一个部分成功的HTTP代码,但我需要立即返回所有资源的个别响应。反正我们能做到吗?

1 个答案:

答案 0 :(得分:9)

您可以使用 207 MULTI-STATUS 作为http状态 多状态响应在多个状态代码可能适合的情况下传达有关多个资源的信息。

默认的多状态响应正文是具有“多状态”根元素的HTTP实体。其他元素包含在方法调用期间生成的200,300,400和500系列状态代码。

您可以在响应正文中包含一组响应对象,这些对象可能拥有自己的状态代码

示例

HTTP 207

{
    "data": [
        {
            "messgage": "success",
            "resource": {
                "foo": "bar",
                "id": "1d1"
            },
            "status": 200
        },
        {
            "messgage": "Requested resource or subresource not found ",
            "resource": null,
            "status": 404
        },
        {
            "messgage": "success",
            "resource": {
                "foo": "bars",
                "id": "1d2"
            },
            "status": 200
        }
    ],
    "metadata": {
        "failure": 1,
        "success": 2,
        "total": 3
    }
}