微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我们是否可以根据请求参数

如何解决我们是否可以根据请求参数

我有一个REST端点,该端点在请求正文中带有一个对象和一个请求参数。传递请求参数时,我需要验证对象的所有属性(如果不是) 采用指定的认值,并且仅需要验证2个属性。两种情况下的路径都必须相同。如何实现?

目前,我具有对象的图案,长度和可能值检查,并通过注释进行了验证。

-----更新类-------

@ValidateParent(parent = "parent ",child= "child")
public class anClass{

    @NotNull(groups = {FrstValidator.class,SndValidator.class})
    @Pattern(regexp = "^[a-zA-Z]{3}$",groups = {FrstValidator.class,SndValidator.class})
    String str1;

    @NotNull(groups = {FrstValidator.class,SndValidator.class})
    String str2;

    @Pattern(regexp = "^[a-zA-Z]{10}$",groups =  SndValidator.class)
    String child;

    @Pattern(regexp = "^[a-zA-Z]{10}$",groups = SndValidator.class)
    String parent;

    @Pattern(regexp = "^[a-zA-Z]{10}$",groups = SndValidator.class)
    String str3;


}

ValidateParent,检查在请求正文中传递子代时是否也传递了父代。

解决方法

您可以使用验证组和两个单独的端点(以request参数的存在来区分)以一种优雅的“春季方式”实现您的目标:

验证组:

var now = moment().format('YYYY. MMM. DD. HH:mm');
alert(now);

请求DTO:

// Validation groups are just marker interfaces
private interface PartialValidation {}
private interface FullValidation {}

控制器:

@Data
private static class Request {
    // This field will be validated only for FullValidation validation group
    @NotNull(groups = FullValidation.class)
    String field1;
    // This field will be validated for both validation groups
    @NotNull(groups = {FullValidation.class,PartialValidation.class})
    String field2;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。