如何解决什么状态代码用于成功但为空的正文?
我的团队和我自己正在尝试决定使用什么状态代码,我们通过 Swagger 生成的 API 客户端对 204 (No Content)
有一个条件,在这种情况下它比 404
更有意义。>
我们想表明响应成功但没有返回 Object
。
假设它是一个购物车:
客户点击购物车并将您带到页面,请求发送到端点 Get//CartOrderDetails
但购物车中没有商品,我们不希望它通过 API 客户端的 200
运行路径,但我们也不希望它通过 404
路径,因为它不是 Not Found
。
在这种情况下你们会用什么?
编辑:感谢您一夜之间的所有回复!肯定有助于澄清事情,似乎总是会有支持和反对 204
的争论。谢谢各位!
解决方法
在这种情况下你们会用什么?
我们不希望它通过 API Client 的 200 路径运行
对于 REST,这是错误的选择。
Uniform interface 是一个重要的 REST 约束。除此之外,这意味着所有资源都使用具有相同语义的自描述消息。
status-code 元素是一个 3 位整数代码,描述服务器尝试理解和满足客户端相应请求的结果。响应消息的其余部分将根据为该状态代码定义的语义进行解释。 -- RFC 7230
换句话说,状态码是transfer of documents over a network domain的元数据。您应该根据响应消息的语义来选择状态代码,而不是根据您希望如何处理该消息。
如果您发送回客户端的是所请求资源的表示,那么您应该返回 200。
如果资源的表示恰好是零字节长,您可能发送 204 而不是 200,但这并不是它真正的用途。 204 center a corner case from remote authoring 的语义。
当然,如果你的响应包含正文,那么使用 204 状态码很可能会造成混乱;所以不要那样做。
200 OK
Content-Type: application/json
null
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。