Я хочу знать, можно ли сопоставить один и тот же URL-адрес с различными методами в классе RestController
, основанный только на теле запроса. Например:Сопоставление одного и того же URL-адреса различным методам на основе тела запроса весной
@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"
}
Я хочу, чтобы второй метод назывался. Это возможно?
Нет. Вы не можете различать на основе полезной нагрузки. –
Основываясь на ваших фрагментах кода, создание более удобного дескриптора 'DELETE' на'/books/{id} '. –
Вы можете попробовать следующее: иметь один аннотированный метод обрабатывать как полезную нагрузку JSON, передавая их как Object i.e. @RequestBody Object obj', а затем преобразовывать его в 'String' или' Book' для его удаления. –