部分成功的 REST API 响应

REST API response in partial success

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

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

我的问题是如何处理响应。使用 HTTP,我不能 return 同时出现成功和错误。

有部分成功的 HTTP 代码,但我需要 return 一次对所有资源进行单独响应。无论如何我们可以做到吗?

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

默认的多状态响应正文是一个带有 'multistatus' 根元素的 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
    }
}