RestEasy:使用多个动态参数获取GET请求

时间:2016-10-10 09:05:33

标签: web-services rest resteasy

所需的网址应如下所示:

http://<host>:<port>/path/item?<arguments>

参数键和值应该是多个且动态的,所以我不能使用@BeanParam@QueryParam。此外,我只能在没有实现的情况下调用此接口。

我目前的代码是这样的:

public interface RestService {

    @GET
    @Path("/path/item")
    @Produces(MediaType.APPLICATION_JSON)
    public JsonNode method(@QueryParam("params") String params);
}

我要传递的参数示例:brand = myBrand&amp; price = myPrice

有没有办法做这样的事情?

我的参考文献:

  1. REST Web Service - Dynamic Query Parameters
  2. Passing indefinite Query Parameters with RESTful URL and reading them in RESTEasy

1 个答案:

答案 0 :(得分:0)

使用UriInfo.getQueryParameters(),如下所示:

@GET
@Path("/path/item")
@Produces(MediaType.APPLICATION_JSON)
public JsonNode method(@Context UriInfo uriInfo) {
    MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters(); 
    ...
}

返回MultivaluedMap。然后迭代它。