如何设计Spring MVC REST服务?
我希望客户端和服务器应用程序使用REST服务相互通信。 我一直在尝试使用Spring MVC来设计它。 我正在寻找这样的东西:
- 客户端执行POSTrest服务调用
saveEmployee(employeeDTO, companyDTO)
- Server在其控制器
saveEmployee(employeeDTO, companyDTO)
有类似的POST方法
可以使用Spring MVC完成吗?
是的,这可以做到。 这是一个RESTful Controller的简单示例(使用Spring注释):
@Controller @RequestMapping("/someresource") public class SomeController { @Autowired SomeService someService; @RequestMapping(value="/{id}", method=RequestMethod.GET) public String getResource(Model model, @PathVariable Integer id) { //get resource via someService and return to view } @RequestMapping(method=RequestMethod.POST) public String saveResource(Model model, SomeResource someREsource) { //store resource via someService and return to view } @RequestMapping(value="/{id}", method=RequestMethod.PUT) public String modifyResource(Model model, @PathVariable Integer id, SomeResource someResource) { //update resource with given identifier and given data via someService and return to view } @RequestMapping(value="/{id}", method=RequestMethod.DELETE) public String deleteResource(Model model, @PathVariable Integer id) { //delete resource with given identifier via someService and return to view } }
请注意,有多种方法可以处理来自http-request的传入数据(@RequestParam,@ RequestBody,自动映射后参数到bean等)。 对于更长和可能更好的解释和教程,尝试谷歌搜索’rest spring mvc’(没有引号)。
通常客户端(浏览器)-stuff是用JavaScript和AJAX完成的,我是服务器后端程序员,对JavaScript知之甚少,但是有很多库可以帮助它,例如参见jQuery
另请参见: Spring 3 MVC中的REST
是的,使用spring MVC很容易实现Rest。
@RequestMapping(value="/saveEmploee.do",method = RequestMethod.POST) @ResponseBody public void saveEmployee(@RequestBody Class myclass){ //saving class. //your class should be sent as JSON and will be deserialized by jackson //bean which should be present in your Spring xml. }