问题描述
我应该处理请求中意外的 json 字段吗?让我们假设我已经将 paymentDTO 作为我的控制器的输入;
public class PaymentDTO {
private String fromAccountNumber;
private String toAccountNumber;
private BigDecimal amount;
... constructor
... getters
... setters
}
我期望的请求是:
{
"fromAccountNumber": "1","toAccountNumber": "2","amount": 50.0
}
如果用户发布如下请求怎么办:
{
"fromAccountNumber": "1","amount": 50.0,"customField1": 100,"anotherField2: "data"
}
它会导致我的 Spring Boot 控制器出现任何问题吗?如果是这样,我应该如何处理意外的 json 请求字段?
解决方法
我的建议是在不匹配的属性上失败(即 400 错误请求,不是 500)。这样一来,客户的错误就会更快地显现出来。
,如果您使用的是 springboot,在您的 application.properties
文件中添加这一行将忽略未知属性:
spring.jackson.deserialization.fail-on-unknown-properties=false