2011-01-30 4 views
5

Я хочу, чтобы клиентское и серверное приложение разговаривали друг с другом с помощью служб REST. Я пытаюсь создать это, используя Spring MVC. Я ищу что-то вроде этого:Как создать службу весеннего MVC REST?

  1. клиент делает вызов службы POST остальные saveEmployee(employeeDTO, companyDTO)
  2. Сервер имеет аналогичный метод POST в контроллере saveEmployee(employeeDTO, companyDTO)

это может быть сделано с помощью Spring MVC?

+1

Здесь выглядит как хороший пример: http://www.stupidjavatricks.com/?p=54 – bwobbones

+1

@bwobbones, вы должны преобразовать ваш комментарий в ответ;) –

+3

@RC, не хотел претендовать на чужую работу ... – bwobbones

ответ

13

Да, это можно сделать. Вот простой пример (с пружинными аннотациями) от RESTful контроллера:

@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-запроса (@RequestParam, @RequestBody, автоматическое отображение пост-параметров в фасоль и т. д.). Для более длинных и, вероятно, лучших объяснений и учебников, попробуйте googling для чего-то вроде «rest spring mvc» (без кавычек).

Обычно клиентский (браузерный) продукт работает с JavaScript и AJAX, я программист на сервере и не знаю много о JavaScript, но есть много доступных библиотек, чтобы помочь с ним, например см jQuery

Смотрите также: REST in Spring 3 MVC

+0

Я не понимаю, почему вы назвали методы store/update/delete 'getResource'. –

+0

Опасности копирования-пасты ... даже не заметили этого, я исправлю это. Спасибо за указание на это! – esaj

1

Да, отдых очень легко реализовать с помощью Spring MVC.

@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.  
} 
+0

Могу ли я иметь несколько аргументов @RequestBody? – outvir

+0

№ Как это будет иметь смысл в REST-Request? – cproinger

Смежные вопросы