我想知道是否可以将相同的URL映射到RestController
类中的不同方法,仅基于请求正文。例如:
@RequestMapping(value="/delete", method=RequestMethod.POST )
public void delete(@RequestBody String id) {
//do something
}
@RequestMapping(value="/delete", method=RequestMethod.POST )
public void delete(@RequestBody Book book) {
//do something
}
请求正文将始终是JSON有效负载。如果它是{"id":"foo"}
我希望调用第一个方法。如果请求正文是:
{
"title":"Spring Guide",
"author":"John Doe"
}
我希望调用第二种方法。这可能吗?
答案 0 :(得分:-1)
无法仅通过有效负载进行区分。
根据我在这里做的测试以及M. Deinum和Ali Dehghani的回答,我认为最好的方法是为每个案例设置不同的网址。所以要通过id删除/books/{id}
,并在主体中使用对象的JSON /books
来删除传递对象。感谢所有评论。