【发布时间】:2014-03-25 19:30:29
【问题描述】:
我现有的代码如下:
@RequestMapping(value = "/{id}/{type}/{answer}", method = RequestMethod.GET)
@ResponseBody
public Results answer(@PathVariable("id") int questionId,
@PathVariable int type,
@PathVariable Boolean answer) {
//do something
}
我希望能够添加使用任意数量的路径变量发出请求的功能,但保持与上述相同的模式(即 /id/type/answer/id/type/answer/id/type/回答/...等)。
因此,理想情况下,我希望能够创建一个支持以下两个 URL 的 API 调用:
http://www.example.com/sendAnswer/id1/typeA/0
与
http://www.example.com/sendAnswer/id1/typeA/0/id2/typeB/1/id3/typeA/0
有人有什么想法吗?
【问题讨论】:
-
我们刚刚离开了查询字符串参数。所以我们想保留路径变量。是的,唯一具有多个值的变量是 answers 路径变量......我们将为答案做一个逗号分隔的列表。
-
理想情况下,我希望能够创建一个支持以下两个 URL 的 API 调用:example.com/sendAnswer/id1/typeA/0 和 example.com/sendAnswer/id1/typeA/0/id2/typeB/1/id3/typeA/0 @ShaunScovil
-
我认为
@PathVariable无法做到这一点,它使用PathVariableMethodArgumentResolver来解决它的价值。您可以通过扩展ArgumentResolver或子类AbstractNamedValueMethodArgumentResolver来实现自己的ArgumentResolver。
标签: java spring rest uritemplate