当对象为空时对象不存在时请求PATCH的身体验证

时间:2016-04-14 20:31:08

标签: spring spring-boot jackson spring-validator

我在这里遇到的问题是HTTP PATCH方法,因为它允许部分更新。

我有一个请求Body,如下所示。

{
    "userAssociationStatus": "ACTIVE",
    "accountHolderAssociationStatus": "ACTIVE",
}

Bean for request Mapping: -

public class PatchRequestVO {

    @CheckEnum(message = "Enumeration value is not found for userAssociationStatus.", enumValue = { "ACTIVE", "INACTIVE" })
    private String userAssociationStatus;

    @CheckEnum(message = "Enumeration value is not found for accountHolderAssociationStatus.", enumValue = { "ACTIVE", "INACTIVE" })
    private String accountHolderAssociationStatus;

    //getters and setters
}

check enum是一个自定义注释,用于验证传递的值是否与enumValue列表中的某个元素完全匹配。

我面临的问题是以下两个请求。

{
    "accountHolderAssociationStatus": "ACTIVE"
}

在上述请求中, userAssociationStatus 不存在,因此它是PATCH我会忽略它并只更新其他状态。

下一个请求是

{
    "userAssociationStatus": null,
    "accountHolderAssociationStatus": "ACTIVE"
}

在这个场景中,我想抛出未找到的枚举,因为请求中的对象为null。

在上述两个请求中,当字段等于null且字段不存在时, userAssociationStatus 等于null。所以我无法从请求角度区分发生的事情。

问题是我如何区分不存在的字段和传递为null的值。

如果需要,可以提供更多信息。

0 个答案:

没有答案