如何设计Spring MVC REST服务?

out*_*vir 5 java rest spring spring-mvc

我希望客户端和服务器应用程序使用REST服务相互通信.我一直在尝试使用Spring MVC来设计它.我正在寻找这样的东西:

  1. 客户端进行POST休息服务调用 saveEmployee(employeeDTO, companyDTO)
  2. Server在其控制器中具有类似的POST方法 saveEmployee(employeeDTO, companyDTO)

可以使用Spring MVC完成吗?

esa*_*saj 13

是的,这可以做到.这是一个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
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,有多种方法可以处理来自http-request的传入数据(@RequestParam,@ RequestBody,自动映射后参数到bean等).对于更长和可能更好的解释和教程,尝试谷歌搜索'rest spring mvc'(没有引号).

通常客户端(浏览器)-stuff是用JavaScript和AJAX完成的,我是一个服务器后端程序员并且对JavaScript知之甚少,但是有很多库可以帮助它,例如参见jQuery

另请参见: Spring 3 MVC中的REST