对于损坏或语义无效的资源,响应http get时使用的最佳http状态代码是什么?
例如,考虑一个对GET /person/1234
的请求,其中服务器上存在人ID 1234的数据,但违反某些业务规则,因此服务器拒绝使用它。
404不适用(因为数据实际上存在)。
4xx通常看起来并不理想(因为问题出在服务器端,不在客户机的控制之下)。
503似乎适用于整个服务,而不是特定的资源。
500当然合适,但实际上告诉客户可能出了什么问题是很模糊的。
有什么建议吗?
最佳答案
在阅读了评论和链接的资源之后,看起来@remylebeau的方法是最好的:
我认为500是唯一符合这种情况的官方回应代码。没有什么能阻止您包含描述失败原因的响应体。