【问题标题】:HTTP Status Code 400 or 422 if data type mismatched for a request value?如果请求值的数据类型不匹配,HTTP 状态码 400 或 422?
【发布时间】:2021-07-07 08:38:48
【问题描述】:

如果请求值的数据类型不匹配,HTTP 状态码 400 或 422?在以下情况下使用 400 是正确的还是应该使用 422 来代替?

  1. 在标题、路径或查询参数中接收到的字符串值,其中预期为整数
  2. 在 JSON 正文中接收到的字符串值,用于需要整数的属性

【问题讨论】:

  • 就个人而言,我会使用 400。 422 表示实体的语法是正确的,但服务器选择不处理实体,但这里不是这种情况,因为实体的数据完全是错误的。但是,这只是我的意见。因此,我投票决定以基于意见的方式结束这个问题,即 StackOverflow 的 off-topic
  • 我使用的和你建议的一样。很高兴知道人们同意我的观点

标签: http-status-code-400 http-status-code-422


【解决方案1】:

RFC2616,使用 400(错误请求)

由于格式错误,服务器无法理解请求 语法

在我看来,数据类型不匹配应该被视为格式错误的语法,因此,在上述情况下,400 是一个合适的选项。

【讨论】:

    猜你喜欢
    • 2019-09-13
    • 2017-09-07
    • 2018-08-09
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 2022-01-14
    相关资源
    最近更新 更多