我应该处理请求中意外的 json 字段吗?

问题描述

我应该处理请求中意外的 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