REST Web服务 - 动态查询参数 [英] REST Web Service - Dynamic Query Parameters

查看:275
本文介绍了REST Web服务 - 动态查询参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要将动态查询参数发送到REST Web服务GET方法[如下所示]。

host:port / app?field1 = XXX& value1 = VVV& field2 = XXX& value2 = XXX ....

消费者可以将参数发送到fieldn并进行评估。每个字段映射到该值。



使用这种类型的需求,我无法在服务器端方法上编写一组有限的QueryParams。



<有没有支持这种类型的REST库?我检查了RESTEasy和泽西岛,他们都似乎不支持这一点(据我检查)。 //docs.oracle.com/javaee/7/api/javax/ws/rs/core/UriInfo.html#getQueryParameters--rel =nofollow> UriInfo.getQueryParameters() ,如下所示:

  @GET 
@ Path(/ foo)
@Produces(MediaType.APPLICATION_JSON)
public Response foo(@Context UriInfo uriInfo){
MultivaluedMap< String,String> queryParams = uriInfo.getQueryParameters();
...
}

它返回一个 多值图 。然后重复它。


I have a requirement to send dynamic query parameters to REST web service GET method [as shown below].

host:port/app?field1=XXX&value1=VVV&field2=XXX&value2=XXX ....

The consumer can send parameters up to fieldn and valuen. Each field maps to the value.

With this type of requirement, I can't code a finite set of QueryParams on the server side method.

Is there any type of REST library that supports this? I checked RESTEasy and Jersey, and they both don't seem to support this [as far as I checked].

Thanks.

解决方案

Use UriInfo.getQueryParameters(), as following:

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

It returns a MultivaluedMap. Then just iterate over it.

这篇关于REST Web服务 - 动态查询参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆