Spring Boot、Spring MVC JSON RequestBody:忽略未知属性

2024-01-09

我们正在开发一个 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(使用前将#替换为@)

Spring Boot、Spring MVC JSON RequestBody:忽略未知属性 的相关文章

随机推荐