Jak obsługiwać usuwanie RESTful w Spring MVC
Jak poprawnie korzystać z RESTful delete w kontrolerze Spring MVC? Mam DAO, który zwraca wartość logiczną podczas próby usunięcia jakiegoś elementu.
Próbuję usunąć element. Jeśli wszystko było w porządku, po prostu pokaż listę przedmiotów (usunięty element już nie będzie). Jeśli nie można usunąć elementu, przekieruj do strony szczegółów i powiedz, dlaczego nie można go usunąć.
Czy potrzebuję specjalnego statusu odpowiedzi lub czegoś takiego? Czy moje podejście jest RESTful?
@RequestMapping(value = "items/{id}", method = RequestMethod.DELETE)
public String delete(@PathVariable("id") int itemId, Model model) {
Item item = itemDao.get(id);
// true -> can delete
// false -> cannot delete, f.e. is FK reference somewhere
boolean wasOk = itemDao.delete(item);
if (wasOk) {
return "redirect:/items";
}
// will write to user which item couldn't be deleted
model.addAttribute("item", item);
return "items/error";
}