我们正在开发一个 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?
非常感谢任何帮助或指示。
请注意,这与这个问题不同:当RequestBody参数的某些属性为null时如何返回400 HTTP错误代码? https://stackoverflow.com/questions/21172567/how-to-return-400-http-error-code-when-some-property-of-a-requestbody-parameter.
因为该问题询问当预期属性不存在时如何返回 400。
将其放入 application.properties 中:
spring.jackson.deserialization.FAIL_ON_UNKNOWN_PROPERTIES=true
以下是相关文档:自定义 Jackson ObjectMapper https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto-customize-the-jackson-objectmapper
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)