У меня есть приложение библиотеки, которое уже реализовано весной MVC.
Мне нужно использовать веб-сервисы ReST для того же приложения, использующего Spring 3.
У меня есть класс Controller, который я хочу использовать как веб-сервис RestFul
@Controller @SessionAttributes("category")
public class CategoryController {
private static final Log log = LogFactory.getLog(CategoryController.class);
@Autowired
private CategoryService categoryService;
@Autowired
private ItemService itemService;
@RequestMapping("/category/categoryList.htm")
public ModelAndView list(HttpServletRequest request,
HttpServletResponse response) throws Exception {
List<Category> list = categoryService.getAllMainCategories();
Map map = new HashMap();
map.put("categoryList", list);
map.put("category", new Category());
return new ModelAndView("categoryList", map);
}
@RequestMapping(method = RequestMethod.POST, value = "/category/save.htm")
public String save(HttpServletRequest request,
HttpServletResponse response, Category command) throws Exception {
log.debug("save method called" + command);
Category category = (Category) command;
System.out.println(category);
categoryService.saveCategory(category);
return "redirect:/category/categoryList.htm";
}
@RequestMapping("/category/edit.htm")
public String edit(@RequestParam String id, ModelMap model)
throws Exception {
log.debug("edit method called :" + id);
log.debug(Long.parseLong(id));
Category cat = categoryService.getCategory(Long.parseLong(id));
model.put("categoryList", categoryService.getAllMainCategories());
model.put("category", cat);
return "categoryList";
}
@RequestMapping("/category/delete.htm")
public String remove(@RequestParam String id, ModelMap model)
throws Exception {
log.debug("remove method called " + id);
categoryService.deleteCategory(Long.parseLong(id));
return "redirect:/category/categoryList.htm";
}
@InitBinder
protected void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(Category.class,
new PropertyEditorSupport() {
@Override
public void setAsText(String text) {
setValue(categoryService.getCategory(Long.valueOf(text)));
}
});
}
}
это класс CategoryController, который добавляет, удаляет или обновляет категорию
ItemService и CategoryService являются источниками данных
Категория - это объект домена, имеющий такие свойства, как идентификатор, имя, описание и т. Д.,
Как мне написать веб-сервис REST для этого?