gpt4 book ai didi

java - 如果 RequestBody 中存在任何未知字段,则需要拒绝 POST/PUT 请求

转载 作者:行者123 更新时间:2023-12-04 01:30:38 27 4
gpt4 key购买 nike

@Valid 检查适用于各个领域。如果 POST/PUT 请求的 JSON 请求正文中存在任何未知字段,是否有任何方法可以拒绝请求。下面是我的示例 DTO 类和 Controller 。
对于下面的示例请求正文(例如),请求应该被拒绝/抛出异常。
任何帮助或建议将不胜感激。

{
"accountid" : "P12345",
"name" : "Cardiology",
"domain" : "Apollo"
}

public class Account {

@NotEmpty(message = "accountid is required")
private String accountid;

@NotEmpty(message = "name is required")
private String name;

//getters & setters

}

**********************************************************************************************

public class BeanController {

@PostMapping(path = "/accounts")
public ResponseEntity<?> getAllAccounts(@RequestBody @Valid Account account) {

System.out.println("::: Account is " + account + " :::");

return ResponseEntity.ok().body("SUCCESS");

}
}

最佳答案

您可以通过使用 @JsonIgnoreProperties 来做到这一点。 .

@JsonIgnoreProperties(ignoreUnknown = true)
public class Account {

@NotEmpty(message = "accountid is required")
private String accountid;

@NotEmpty(message = "name is required")
private String name;

//getters & setters

}

在 application.yml 中添加以下属性以在 spring-boot 最新版本中工作。
spring:
jackson:
deserialization:
fail-on-unknown-properties: true

关于java - 如果 RequestBody 中存在任何未知字段,则需要拒绝 POST/PUT 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61098562/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com