当资源为纸牌时,BadRequest vs not Intround找不到所需的用户



我只是在这里与我的同事讨论在请求特定资源时返回的最佳响应是什么,例如数据表,例如,URL是有效的,但一部分处理此数据表时的处理是为了获取可能找不到的特定用户。

我在SO上找到了这个问题:通过无效ID时,请恢复API返回400或404

我的理解是,如果请求有效,即URL和参数传递给它,则如果找不到用户,则应返回404(未配置(。

,但我的同事的观点是数据表是资源,因此由于未找到用户要求,因此应将其视为400(badrequest(

有人可以澄清它应该是什么吗?

谢谢

尽管BadRequest最初可能有意义,但它不符合400的定义。

400:由于畸形的语法,服务器无法理解该请求。客户不应在没有修改的情况下重复请求。

保留一个400,用于丢失所需字段时,提供了不正确的数据类型等等。

在您的情况下,听起来用户已经提出了有效的请求,但是找不到完成所需的数据(我猜这是URI的一部分(。这听起来更像是404,当找不到指定资源以外的其他内容时,这是完全有效的。

404:服务器尚未找到与Request-uri匹配的任何内容。没有迹象表明该病是暂时的还是永久的。如果服务器通过某些内部可配置的机制知道旧资源是永久不可用且没有转发地址,则应使用410(消失(状态代码。当服务器不希望准确透露为什么拒绝请求或不适用其他响应时,通常使用此状态代码。

无法在错误代码或错误消息中表示未找到的细节。

最新更新