rest - 当部分批量更新失败时,我应该返回什么状态代码?

标签 rest http web

假设我是一个服务器,响应批量创建某个实体的请求。假设我还决定这样做,以便如果由于服务器错误或用户错误而无法创建实体的一个实例,我仍然会创建其他实体实例。在这种情况下我应该返回什么? 201 因为我创建了请求中的大部分实体?或者 A 4xx/5xx 因为创建实体之一时出现错误?

最佳答案

如果返回 4xx 代码,则意味着整个请求失败,并且服务器状态未更改。

如果请求的目的是做“一件或多件事情,其中​​一些可能会失败”,那么部分申请仍然是成功的,因此处于 2XX 范围内。

206 不是一个好主意。这是专门针对使用 Range 的请求,但此处的情况并非如此。

可以使用

207。您可能想要定义自定义格式,而不是基于默认 XML 的格式。我的投票可能只是200

此外,考虑只执行许多请求。请求很便宜,为什么要把它们放在一起呢?现在每个请求都可以有自己漂亮、准确的状态代码。

关于rest - 当部分批量更新失败时,我应该返回什么状态代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30087835/

相关文章:

java - Spring hatoas jaxrslinkbuilder 添加空字段

java - 以 json 格式向客户端返回消息以及数据 - Java/Spring/REST

java - 无法在 GlassFish 中使用 Jersey 启用 REST(引发与 JPA 相关的异常)

json - Angular 4 HTTP 不返回 JSON 正文

javascript - 使用 javascript 获取所有文化的列表

rest - 将单例作为 Tomcat servlet 注入(inject) JAX-RS (Jersey) 资源

http - Ocaml : How compile a file using the module Http_Client. 方便吗?

java - 使用 sun.net.www.protocol.http.HttpURLConnection.getInputStream() 的偶发连接问题的根本问题是什么?

javascript - 需要有关如何实现 js/css 版本控制的建议

forms - 将自定义 html 表单数据发布到 zoho crm