在REST应用程序的GET请求中返回验证错误(400)正确吗?
我正在构建REST应用程序,需要通过GET参数实现过滤。例如,使用某些特定类型筛选对象:在REST应用程序的GET请求中返回验证错误(400)正确吗?,rest,Rest,我正在构建REST应用程序,需要通过GET参数实现过滤。例如,使用某些特定类型筛选对象: example.com/api/objects/?type=some_type 问题: 如果输入的类型不正确,REST端点应该返回什么 示例:端点接收请求 example.com/api/objects/?type=other_type 对于对象,不允许使用其他类型 我必须返回什么错误代码 (我的版本: 400-因为输入无效,但很奇怪-GET请求返回400错误 422-我不确定这是否是逻辑错误 返回空响
example.com/api/objects/?type=some_type
问题:
如果输入的类型不正确,REST端点应该返回什么
示例:端点接收请求
example.com/api/objects/?type=other_type
对于对象
,不允许使用其他类型
我必须返回什么错误代码
(我的版本:
400-因为输入无效,但很奇怪-GET请求返回400错误
422-我不确定这是否是逻辑错误
返回空响应。
)HTTP 400错误请求是正确的,但是如果您像下面这样响应正确的错误消息,它将非常有用
{
"code": <your error code>,
"validation":
{
"exception": "java.lang.IllegalArgumentException: Error parsing type"
},
"message": "Validation faild"
"request" : "example.com/api/objects/?type=other_type"
}
{
“代码”:,
“验证”:
{
“异常”:“java.lang.IllegalArgumentException:分析类型时出错”
},
“消息”:“验证失败”
“请求”:“example.com/api/objects/?type=其他类型”
}
请您补充解释一下为什么代码400是正确的,好吗?(一些链接或自己解释)。10.4.1 400错误请求由于语法错误,服务器无法理解该请求。未经修改,客户端不应重复请求。