首页 > 解决方案 > 在不应为空白的强制参数中传递空白值的 http 错误代码应该是什么?

问题描述

例如:

发帖方式:

{
  name = "",
  id = 1,
  class = 4
}

name 不应该是一个空白参数,但我仍然在 post/put 请求调用中以这种方式发送它。此类数据的输出错误代码应该是什么

标签: apiresterror-code

解决方案


许多人使用 400 Bad Request。这曾经表示语法错误,但最新的 HTTP RFC使其更加广泛。

400 (Bad Request) 状态码表示服务器不能或不会处理请求,因为某些东西被认为是客户端错误(例如,格式错误的请求语法、无效的请求消息帧或欺骗性请求路由)。

我更喜欢更具体的422 Unprocessable Entity。这表明语法很好,但语义错误。

422(Unprocessable Entity)状态码意味着服务器理解请求实体的内容类型(因此 415(Unsupported Media Type)状态码是不合适的),并且请求实体的语法是正确的(因此是 400(Bad Request) ) 状态码不合适)但无法处理包含的指令。例如,如果 XML 请求正文包含格式正确(即语法正确)但语义错误的 XML 指令,则可能会出现这种错误情况。

从技术上讲,422 来自 WebDAV,而不是 HTTP,但没关系。许多 API 使用 422。

任何一个都可以接受。

另请参阅如果请求缺少必需参数,我应该使用什么 HTTP 状态响应代码?.


推荐阅读