Answers:
我已经处理了一个非常类似的问题。在这种情况下,我返回了
207种多状态
现在,这不是严格的HTTP,它是WebDAV扩展的一部分,因此,如果您也无法控制客户端,那么这对您不利。如果这样做,则可以执行以下操作:
<?xml version="1.0" encoding="utf-8" ?>
<D:multistatus xmlns:D='DAV:'>
<D:response>
<D:user>user-123</D:user>
<D:status>success</D:status>
</D:response>
<D:response>
<D:user>user-789</D:user>
<D:status>failure</D:status>
</D:response>
</D:multistatus>
但同样,这是HTTP扩展,您还需要控制客户端。
我遇到了同样的问题,最终使用了两种不同的解决方案:
202: Accepted
,指示请求正常,但是不能保证一切都按预期进行。200
在响应中返回法线,但在响应正文中包含未列出的内容列表。第二个通常效果最好,但是如果您懒惰或使用队列进行处理,则第一个很好。
超文本传输协议处理事物的传输方面。它没有错误代码来处理应用程序级别的错误。
返回200是正确的做法。就HTTP而言,请求已被正确接收,正确处理,并且您正在将响应发送回去。因此,在HTTP级别上一切正常。在http顶部运行的与应用程序相关的任何错误或警告都应包含在响应中。这样做还可以避免代理服务器可能遇到的一些棘手问题,这些代理服务器可能无法以您期望的方式处理某些响应。