Rest WS中的动态请求参数

时间:2017-08-10 07:56:21

标签: java rest http request cypher

我被要求使用动态参数实现REST Web服务请求。我将用一个例子来解释: 现在我们的请求对象的字段是三个字符串,它们来自控制器并用于实现业务逻辑。明天,我们可能需要引入另一个参数,因此我建议使用Map实现请求对象,这样我们就可以在请求中管理3个以上的属性,而无需打开代码并重新部署服务。

现在,我的问题是,这可能吗?我认为是,但无论如何控制器不知道如何处理新插入的属性,或者它永远不会使用它!所以,恕我直言,这是一个无用的返工,因为无论如何我们将需要打开代码并重新部署.war。

提前感谢您的帮助。

P.S。 Web服务是GraphDB调用的包装器,如果它有帮助

1 个答案:

答案 0 :(得分:1)

如果您使用 GET 方法,则可以获取值的参数名称,如下面的代码段所示:

@GET
public String get(@Context UriInfo ui) {
    MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
    MultivaluedMap<String, String> pathParams = ui.getPathParameters();
}

对于表单参数,可以执行以下操作:

@POST
@Consumes("application/x-www-form-urlencoded")
public void post(MultivaluedMap<String, String> formParams) {
    // Store the message
}

通过使用多值地图,您可以将任何参数传递给Rest服务,并且您可以处理业务逻辑。

参考:Extracting request params