HTTP错误代码406

时间:2017-11-12 08:31:28

标签: rest http

我知道正确使用HTTP状态代码是正确REST服务实现的良好指标。我不确定在使用无效令牌调用以下资源以确认创建新用户帐户时要返回的代码:

/ user / confirmation POST {param is confirmation token}

最佳猜测是406不可接受?但也许它是200,因为没有错误,在这种情况下,响应中包含的信息表明确认失败了?

1 个答案:

答案 0 :(得分:8)

对于这种情况,406200 不适合

  • 406用于内容协商,当服务器无法使用请求的Accept标头中指示的媒体类型发送特定资源的表示时。

  • 操作成功时必须使用
  • 200,情况并非如此。

您可能会使用通用400来表达错误请求,或者转到403来表明请求被禁止。

发送正确的状态代码与证明描述问题的有效负载同样重要,并帮助客户确定错误原因。

为了报告HTTP API中的问题,我建议您查看RFC 7807:它定义了简单的JSON和XML文档格式,以通知客户端HTTP API中的问题,并定义{ {1}}和application/problem+json媒体类型。

Michael Kropat汇总pretty useful set of diagrams以确定每种情况最合适的状态代码。有关application/problem+xml状态代码,请参阅下图:

Picking the right 4xx status code