1

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

我有一个如下的请求正文。

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

用于请求映射的 Bean:-

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
}

检查枚举是一个自定义注释,用于验证传递的值是否与 enumValue 列表中的元素之一完全匹配。

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

{
    "accountHolderAssociationStatus": "ACTIVE"
}

在上述请求中,userAssociationStatus不存在,因此由于它是一个 PATCH,我将忽略它并仅更新其他状态。

下一个请求是

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

在这种情况下,我想抛出未找到的枚举,因为请求中的对象是空的。

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

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

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

4

0 回答 0