首页 > 解决方案 > 查询过滤参数

问题描述

在我的 REST 应用程序中,我有 GET 方法来处理带有分页参数(偏移量和限制)的请求。它还处理过滤器和排序参数,例如我可以设置过滤器像'id eq 5'和排序像'name desc'。但是过滤器的参数它只是查询字符串参数和创建带有 2 个过滤器的请求,例如“id eq 5, size gt 10”。我可以将带有 2 个过滤器参数的请求作为 2 个独立的查询参数来处理吗?是的,我可以@RequestParam在我的方法中为 2 个独立的参数添加 2。但是如果有可能通过 10-15 个参数过滤请求呢?这是否意味着我应该在方法中设置 10-15 个参数@RequestParam(required = false)或者有更方便的方法来处理它?

总之,我想得到类似的东西,host/filterkey1[operator]=value1&filterkey2[operator]=value2现在我得到了这个:host/filter=filterkey1[operator]value1,%filterkey2[operator]value2

标签: javaspringspring-boot

解决方案


您可以使用以下命令注释地图@RequestParam

@RequestParam Map<String, String> filters

根据文档

如果方法参数是 Map 或 MultiValueMap 并且未指定参数名称,则使用所有请求参数名称和值填充 map 参数。


推荐阅读