对于语义正确的数据(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
}