2016-10-10 54 views
0

所需的URL請求應該是這樣的:RestEasy的:GET與多個動態參數

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); 
} 

舉例:品牌= MyBrand網&價格= myPrice

有沒有辦法做這樣的事情?

我的參考文獻:

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

回答

0

使用UriInfo.getQueryParameters(),如下:

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

它返回一個MultivaluedMap。然後只是迭代它。

+0

謝謝,但目前我只能使用界面。是否可以傳遞包含每個參數名稱/值的Map?但無論如何,我不再使用這種方法。好像我不能發送動態參數。 – Mrye