Rest WS 中的动态请求参数



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

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

提前感谢您的帮助。

附言Web服务是GraphDB调用的包装器,如果它有帮助的话

如果使用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 服务,并且可以处理业务逻辑。

参考:提取请求参数