部分成功的 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
}
}
我有一个 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
}
}