我的团队和我自己正在努力决定使用什么状态代码,我们通过Swagger生成的API客户机对204 (No Content)有一个条件,这个条件比本例中的404更有意义。
我们希望显示响应是成功的,但是没有返回Object。
假设它是购物车:客户单击购物车并带您到页面,请求发送到端点Get//CartOrderDetails,但购物车中没有项目,我们不希望它通过API客户端的200路径运行,但我们也不希望它通过404路径,因为它不是Not Found。
你们在这个案子里会用什么?
编辑:谢谢你一夜之间的回复!肯定帮助了事情的明朗化,似乎总是会有一个支持和反对204的争论。谢谢你们!
发布于 2021-07-19 15:07:56
你们在这个案子里会用什么?
我们不希望它通过API客户端的200路径运行
休息一下,这是不对的。
均匀界面是一个重要的REST约束。除其他外,这意味着所有资源都使用具有相同语义的自描述性消息。
状态代码元素是一个3位整数代码,描述服务器试图理解和满足客户端相应请求的结果。响应消息的其余部分将根据为该状态代码定义的语义进行解释。-- RFC 7230
换句话说,状态代码是通过网络域传输文档的元数据。您应该根据响应消息的语义来选择状态代码,而不是您希望如何处理该消息。
如果您要发送回客户端的是所请求的资源的表示,则应该返回200。
如果资源的表示恰好是零字节长,那么您可以不用发送204而不是200,但这并不是真正的目的。204个从远程创作中的一个角落案例中心的语义。
当然,如果您的响应包含一个主体,那么使用204状态代码可能会造成混乱,所以不要这样做。
200 OK
Content-Type: application/json
nullhttps://stackoverflow.com/questions/68441723
复制相似问题