首页 > 解决方案 > 如何在 Spring RestController 方法中从请求中提取查询参数?

问题描述

网址:/api/v1/user ? 类型=abc & 公司=xyz

在 API 调用中,我们可以使用 @QueryParam 注解提取查询参数。但是,我们必须为映射定义查询参数键。

@QueryParam("type") String type
@QueryParam("company") String company

万一,我们有动态参数进来,比如 page=2 & limit=10 & skip=20 & type=abc ...我们正在使用休息客户端再次调用不同的服务。在这里,我们必须将请求中收到的所有查询参数传递给该服务。

我们如何读取这些查询参数并将其添加到请求中?

标签: springspring-bootrest-client

解决方案


您可以尝试使用 Map 并像这样定义查询参数。

@RequestParam Map<String,String> params

然后您可以在 params 映射中找到所需的变量,如下所示:

params.get("type");

然后,当您提出请求时,您可以为地图是否包含特定参数创建一些逻辑,然后使用它:)


当您在没有特定参数的情况下定义 @RequestParam 时,它将提取所有参数并注入到地图中。


推荐阅读