【发布时间】:2011-12-20 16:32:10
【问题描述】:
我正在构建一个安静的服务,它需要接受 任何 个参数,而不是下面示例中的 一个。
假设以下服务例程
@RequestMapping("/start/id/{id}", RequestMethod.GET)
public void startService(@PathVariable String id) {...}
有一个基于RestTemplate的客户端实现
restTemplate.getForObject("/start/id/{id}", null, id);
问题:但是考虑到可能有数千个ids,我必须使用RestTemplate 在一个请求中发送所有参数的宁静方法是什么?我看过建议
- 将请求正文添加到 GET 请求 -
RestTemplate似乎不可能? - 在 id 中使用分隔符(例如,
id1|id2|....|idn) - 看起来像 hack - 先输入参数,然后发出 GET 来引用 id - 双重请求,似乎不直观
- 添加多个 URL 参数 (
?id=foo&id=bar&.....&id=foobar)
我知道以前有人问过类似的问题(calling-a-restful-service-with-many-parameters、how-to-create-rest-urls-without-verbs、can-you-build-a-truly-restful-service-that-takes-many-parameters),但我发现很难找到令人满意的答案,或者至少是基于RestTemplate 的答案。
【问题讨论】:
标签: java spring url rest resttemplate