【发布时间】:2016-06-26 13:15:58
【问题描述】:
我们正在开发一个 JSON Web 服务来通过 @RequestBody 注释接收数据。如果请求中包含的属性与反序列化的 bean 不匹配,我们预计会收到 HTTP 400(错误请求)响应,但该属性会被简单地忽略。这是一个例子:
@RestController
@Slf4j
public class TestController {
@RequestMapping(method = RequestMethod.POST, value = "/query")
public void parse(@RequestBody Query query) {
log.info("Received query: {}", query.toString());
}
}
@Data
class Query {
private String from;
private String to;
}
发帖时
{ "from" : "123", "to": "456", "foo" : "bar" }
我们得到一个 HTTP 200 响应。在这种情况下,我们如何让 Spring MVC 返回 HTTP 400?
非常感谢任何帮助或指示。
请注意,这与此问题不同:How to return 400 HTTP error code when some property of a RequestBody parameter is null?。
因为该问题询问如何在缺少预期属性时返回 400。
【问题讨论】:
-
你试过了吗:return new ResponseEntity(HttpStatus.Bad_request); docs.spring.io/spring/docs/current/javadoc-api/org/…
-
Spring 应该为我做这件事,以防反序列化失败。
-
那我就飞走了,我不是这方面的专家-祝你好运
-
感谢您的帮助。
-
你在使用 Spring Boot 吗?还是普通的spring mvc?
标签: java json spring spring-boot jackson