如果数据类型与请求值不匹配,HTTP 状态代码 400 或 422?

问题描述

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

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

解决方法

RFC2616,给出了使用400(Bad Request)

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

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