Ale*_*lex 3 rest http http-status-codes asp.net-web-api http-status-code-412
我有一个返回Voucher对象的 api 端点。
凭证是从第三方检索的。
有一些条件,例如过期日期,我们检查/验证。
因此,如果客户端应用程序请求/voucher/1234从第三方检索 ID 为 1234 的凭证。
如果过期日期 < 现在,我们需要返回一个错误。
我想返回标准的 HTTP 错误。
哪个会最合适?
我最初认为 412 会是,但现在我不确定。
当服务器不满足请求标头中提供的先决条件之一(If-Match、If-Modified-Since 等)时,将使用 HTTP 412。
非常通用的方法是在无效字段上返回 HTTP 400 + 特定错误消息。
然而,越来越多的流行 API 开始使用 HTTP 扩展来更精细地将错误反馈给客户端。Twitter 和 GitHub 使用 WebDAV HTTP 扩展中定义的 HTTP 422 不可处理实体。HTTP 422 说:
422(不可处理实体)状态码意味着服务器理解请求实体的内容类型(因此 415(不支持的媒体类型)状态码是不合适的),并且请求实体的语法是正确的(因此是 400(坏请求) ) 状态代码不合适) 但无法处理包含的指令。例如,如果 XML 请求正文包含格式正确(即,语法正确)但语义错误的 XML 指令,则可能会出现这种错误情况。
您的服务器了解用户想要做什么并了解数据包含的内容,但它不会让您这样做。所以,Http 422 看起来很适合你。
| 归档时间: |
|
| 查看次数: |
1329 次 |
| 最近记录: |