我想在spring-mvc
中创建一个REST-GET控制器,它接受一个对象列表,例如10个ID,如下所示:
@RestController
public class MyRest {
@RequestMapping(method = RequestMethod.GET)
public Object test(@RequestParam value="id" required=false) List<Integer> ids) {
Sysout(ids);
}
}
无论如何,当我打电话时,我必须多次重复id param:
localhost:8080/app?id=1&id=2&id=3&...
可以将参数更改为某种列表吗?例如
app?id=1,2,3,4,5
如果是的话,这是否可取?从客户的角度来看,哪个更好?
答案 0 :(得分:3)
最好使用带有JSON或XML的POST消息作为请求体。 因为你永远不知道会传递多少个。
@RestController
public class MyRest {
@RequestMapping(method = RequestMethod.POST)
public Object test(@RequestBody IDRequest request) {
Sysout(ids);
}
public static final class IDRequest {
List<Integer> ids;
<!-- getter/setters--->
}
}
请求将是某种类型的JSON或XML
{"ids":[1,2,3,4,5,6,7,8,9]}
答案 1 :(得分:1)
您可以提供休息服务的对象列表作为请求参数。这是示例
@RequestMapping(value = "/animals, method = RequestMethod.GET)
public void test(@RequestParam(value="animalsNames[]") String[] animalsNames) {
Sysout(animalsNames);
}
您的请求似乎是
http://localhost:8080/appname/animals?animalsNames[]=dog,horse
HTTP Method type : GET