【发布时间】:2012-06-29 07:04:53
【问题描述】:
我有一项服务,必须先检查一些验证规则,然后才能进行特定操作。
例如,如果未满足所有验证规则,则客户端不应生成可打印的报告。
但是,单个客户端可能没有所有必需的信息(该用户可能只能访问用于确定验证成功的数据子集),因此必须向服务器发送请求:基本上"是thing 在start 和finish 之间有效"。
响应将是某种指示VALID: FEEL FREE TO CONTINUE 的令牌,或者是验证失败原因的列表,可以呈现给用户。
很明显,成功的验证将返回200 OK。但我不认为成功状态码适合验证失败。我倾向于409 Conflict,但我只用它来拒绝PUT 或POST。 409 表示验证失败是否有效(窃笑),还是有更好的方法?
注意:执行的操作并未在服务器上执行,因此跳过此检查并尝试该操作,在禁止操作的情况下使用 403 不是一个选项。
【问题讨论】:
-
您已向服务器请求验证信息。它已经遵守了。对我来说感觉很成功(从 HTTP 的角度来看)
-
Damien_The_Unbeliever:如果你把这个放到答案中,我会接受。
-
我不知道这有什么大不了的?您可以使用
409进行验证。但只有在一种情况下,如果用户试图创建一个已经存在的资源,因此conflict。 -
...这里不是这样。请求本身已成功,但报告验证失败。就像公认的答案说的那样。您的评论没有任何价值。
标签: validation http http-status-codes