部分成功/错误的http代码

时间:2011-02-16 16:01:30

标签: http rest status http-status-codes

我有一个服务,需要处理一个项目列表。

每个项目在后端都有一个项目,当所有项目完成后,服务返回一个包含原始项目列表的文档,但每行都有成功或失败状态。

示例:

PUT - 身体:

[
  {"item" : 1},
  {"item" : 2},
  {"item" : 3}
]

响应 - 身体:

[
  {"item" : 1, "state" : "OK"},
  {"item" : 2, "state" : "OK"},
  {"item" : 3, "state" : "FAILED"}
]

现在的问题是: 如果其中一个项目失败,我应该使用哪些返回代码? 我似乎无法找到任何正确匹配的http状态代码,这是一个失败,但它再次不是,但最重要的;)?

2 个答案:

答案 0 :(得分:0)

从HTTP的角度来看,它是成功的 - 我会返回200 - 请求已成功接收并处理。

然后由应用程序检查是否一切正常。

但是,为了让生活更轻松,我可能会在响应中添加错误字段?

答案 1 :(得分:0)

更好的想法是使用207多状态响应,但要在POST中发送数据。

对于上传/更新大量项目的事情,这种情况很多。在多状态响应中,您可以对应每个操作和特定响应,如下所示:

<response>
  <item id="1">
    <status>200 OK</status>
  </item>
  <item id="2">
    <status>403 Forbidden</status>
  </item>
</response>