在春季限制相同请求参数的数量

时间:2018-12-05 06:20:56

标签: spring-boot http-request-parameters

我有类似GET请求

/api/v1/data?name=aaa&name=bbb&name=cccc&name=dd&name....

我想限制“名称”参数的数量,该数量不得超过100(可在属性文件中配置)

这是我的控制人

public Data getDataByNames(@RequestParam(value = "name") List<String> names) {
    return userService.getDataByNames(names);
}

我该怎么做?谢谢

更新:是的,我可以检入服务层: if(names.size()<100){...}但似乎不专业

1 个答案:

答案 0 :(得分:0)

如果不需要最大数量的元素即可配置,则可以使用注释@Size。 步骤1.为您的请求参数定义包装器

public class NameWrapper {

    @Size(max = 100)
    @NotEmpty
    private List<String> name;
    //getters and setters
}

步骤2。将包装器作为参数添加到控制器方法中

public Data getDataByNames(@Valid NameWrapper nameWrapper) {

如果要通过应用程序属性进行配置,则应定义自己的自定义参数解析器。