api - 在不应为空白的强制参数中传递空白值的 http 错误代码应该是什么?
问题描述
例如:
发帖方式:
{
name = "",
id = 1,
class = 4
}
name 不应该是一个空白参数,但我仍然在 post/put 请求调用中以这种方式发送它。此类数据的输出错误代码应该是什么
解决方案
许多人使用 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。
任何一个都可以接受。
推荐阅读
- titanium - Titanium 地理位置 distanceFilter 属性未按预期工作
- python - 阅读使用 Librosa (Python) 绘制的图表并从中创建(例如)音频文件
- ui-automation - How can we fetch multiple data stored in table in karate?
- node.js - Sequelize - 从选择值插入数据作为外部 id
- preact - Preact 等价于 renderToNodeStream
- javascript - 分配后反应状态未定义
- r - 降雨径流绘图
- javascript - 如何为每个新对象将其推送到数组中,避免覆盖?JavaScript
- java - 如何以毫秒解析 ZonedDateTime
- java - 如果我们使用反射更改最终属性值,则不会抛出 UnsupportedEncodingException