开发者

http code for partual success / error

I have a service that takes a list of items to handle.

Each of the it开发者_开发百科ems is handeled one at the time in the backend, when all items is done the service returns a document containing the original list of items but with a success or failure status on each line.

example:

PUT - body:

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

reponse - body:

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

The question is now: which return code should I use if one of the items has failed? I cannot seem to find any correct matching http status code for this, it is a failure, but then again its not, but allmost;) ?


From the HTTP point of view, it's a success - I'd return 200 - the request was successfully received and processed.

It's then up to the app to check if it's all OK.

However, to make life easier I might add an error field into the response?


A better idea would be to use a 207 multi-status response, but to send the data in a POST.

This happens a lot with things that upload/update a lot of items. In the multistatus response, you can correspond each action and a specific response, like so:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜