Http状态代码412是否适用于基于我们域中定义的规则的错误

Http状态代码412是否适用于基于我们域中定义的规则的错误,http,rest,asp.net-web-api,http-status-codes,http-status-code-412,Http,Rest,Asp.net Web Api,Http Status Codes,Http Status Code 412,我有一个api端点,它返回一个凭证对象 从第三方检索凭证 我们需要检查/验证某些条件,例如过期日期。 因此,如果客户机应用程序请求从第三方检索id为1234的/concedure/1234凭证 如果过期日期

我有一个api端点,它返回一个
凭证
对象

从第三方检索凭证

我们需要检查/验证某些条件,例如过期日期。
因此,如果客户机应用程序请求从第三方检索id为1234的
/concedure/1234
凭证

如果过期日期<现在,我们需要返回一个错误

我想返回标准HTTP错误

哪个最合适?

我最初以为412会是,但现在我不确定。

当服务器不满足请求头中提供的前提条件之一(如果匹配,如果修改,等等)时,使用HTTP 412

非常通用的方法是在无效字段上返回HTTP 400+特定的错误消息

然而,越来越多的popularapi开始使用HTTP扩展,以便在向客户机反馈错误时更细粒度地进行扩展。Twitter和GitHub使用WebDAV HTTP扩展中定义的HTTP 422不可处理实体

422(不可处理实体)状态代码表示服务器 了解请求实体的内容类型(因此 415(不支持的媒体类型)状态代码不合适),并且 请求实体的语法正确(因此是400(错误请求) 状态代码不合适),但无法处理包含的 说明书例如,如果XML 请求主体包含格式良好的(即语法正确的),但 语义错误的XML指令

您的服务器了解用户想要做什么,也了解数据包含什么,但它不允许您这样做。所以,Http 422看起来很适合您