是否应为无效数据返回HTTP 422(不可处理的实体)?

时间:2015-04-13 19:55:41

标签: http http-headers

问题

对于语义正确的数据(w.r.t.结构和类型)是否应该返回422,但服务器认为该数据无效?

权威参考

来自WebDAV RFC

  

422(不可处理实体)状态代码表示服务器      了解请求实体的内容类型(因此a      415(不支持的媒体类型)状态代码不合适),和      请求实体的语法是正确的(因此是400(错误请求)      状态代码不合适但是无法处理包含的内容      说明。例如,如果是XML,则可能会出现此错误情况      请求正文包含格式正确(即语法正确),但是      语义错误的XML指令。

具体例子

格式错误的请求

如果端点需要JSON,那么语法无效的JSON应该作为HTTP 400 Bad Request被拒绝。

{
    segments: [1, 2   // Missing closing bracket
}

格式错误的架构

如果端点需要存在特定的指令或属性,但请求无法满足端点的架构,我相信这将属于HTTP 422 Unprocessable Entity,作为&# 39;指令'这是无法理解的。

{
    selectedSegments: [1, 2]   // Endpoint expects the attribute 'segments'
}

无效数据(相关项目)

如果端点接收到在预期模式下构建的数据,则发现该模式中包含的数据 该模式无效,我认为这构成了一个HTTP 200 OK响应,其中包含与验证错误有关的信息作为回应机构传递。问题是这个假设是否正确。

{
    segments: [1, 2]   // It is invalid to simultaneously select these particular segments, as determined by the server on request resolution
}

0 个答案:

没有答案