如何使用Spring REST和复杂的查询参数?

时间:2016-06-24 09:31:56

标签: java spring rest spring-restcontroller

我有一个资源,我希望通过一些搜索字词进行过滤,其中有一些我希望以格式发送的属性

?attributeNames[0]=Foo&attributeValues[0]=Bar&attributeValues[0]=Baz

(或在语义上等效 - 每个名称可以映射到一个或多个值)

在Spring REST端点中表示这一点的最佳方法是什么?我尝试过像

这样的方法参数
public void endpoint(@RequestParam(...)String[] names, @RequestParam(...)String[][] values) {
}

但这似乎没有按预期工作(我看不到任何正确指定参数名称的方法)。是否可以这样做,或者如果我使用其他机制(例如将参数序列化为JSON对象),它是否会更好地工作?

1 个答案:

答案 0 :(得分:1)

从技术上讲,您可以将其实现为一个查询参数,因为之后的所有内容?可以解释为一个参数。

然后,您可以在端点内以编程方式处理它。

但这不是推荐的方式,因为你最终会在URL中暴露很多东西。更好的方法是在请求体中将其作为Mutlipart或Form参数

处理