我的应用程序上有一个修补程序请求,用于更新用户的密码。我们有一个Ember验证器来阻止除1个业务规则之外的所有无效输入,也就是说它不应该是用作过去5个密码之一的密码。
我们目前正在返回400 Bad Request,但是我的公司有一个用于组件可用性的仪表板,并将400和500个请求计为不可用,因为大多数应用程序都是SOAP,它们只需要200和300。即使我们通过用户界面正确地处理了这个400,它仍然是对我们的反对。并使我们成为一个可用性差的领域。
我们是否应该将这个用于监控可用性并让他们为REST服务进行更改的人员,因为随着公司创建更多REST应用程序,这将变得更加常见和常见。或者我们是否陷入并返回200还指出密码未成功更新?
答案 0 :(得分:0)
我认为400响应不适合该服务。如果服务在最后5个密码中重复用户密码时使用400响应,则服务器 。
根据W3C:
由于格式错误,服务器无法理解该请求 句法。客户端不应该重复请求 修改
在您的情况下,请求被理解。它返回400以表示应用程序关注(关于密码重用)。我相信200响应更适合有效载荷表明应用程序问题。
修改强> 有人可能会争辩说422 response将是有序的:
422(不可处理实体)状态代码表示服务器 了解请求实体的内容类型(因此a 415(不支持的媒体类型)状态代码不合适),和 请求实体的语法是正确的(因此是400(错误请求) 状态代码不合适但是无法处理包含的内容 说明。例如,如果是XML,则可能会出现此错误情况 请求正文包含格式正确(即语法正确),但是 语义错误的XML指令。