我有一堆PUT操作,它们对输入资源执行操作。让我们举个例子:我的API中有付款操作,该操作指出必须以特定的金额向信用卡收费。在我的代码中,我首先验证卡上是否有足够的信用,然后执行该操作。如果没有足够的金额,我只返回400,但是我不确定它是正确的。
在这种情况下,哪个是正确的HTTP状态代码?
我当然可以发送响应,HTTP 200
并附上有效负载,并附有解释错误的更多详细信息。我也可以寄回HTTP 400 Bad Request
甚至更好的HTTP 412 Precondition Failed
。
在验证失败的情况下,响应中发送正确的代码是什么?我可以阅读任何资源来了解HTTP状态代码和HTTP动词的基本原理吗?
使用422无法处理的实体。
422状态代码表示服务器可以理解请求实体的内容类型(因此415不支持的媒体类型状态代码是不合适的),并且请求实体的语法是正确的(因此400 Bad Request状态代码是不合适的),但是无法处理其中的指令。
否则,只需将400用于与您的业务领域有关的任何错误即可。截至2004年6月,错误400的说明已修改为:
由于某些原因导致客户端错误,服务器无法或将不会处理请求
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句