2011-01-30 5 views
5

Je souhaite que les applications client et serveur se parlent à l'aide des services REST. J'ai essayé de concevoir cela en utilisant Spring MVC. Je cherche quelque chose comme ceci:Comment concevoir un service Spring MVC REST?

  1. client fait un appel de service de repos POST saveEmployee(employeeDTO, companyDTO)
  2. Server a une méthode similaire POST dans son contrôleur saveEmployee(employeeDTO, companyDTO)

Cela peut-il être fait en utilisant Spring MVC?

+1

ressemble ici à un bon exemple: http://www.stupidjavatricks.com/?p=54 – bwobbones

+1

@bwobbones, vous devez convertir votre commentaire dans une réponse;) –

+3

@RC, ne voulait pas réclamer le travail de quelqu'un d'autre ... – bwobbones

Répondre

13

Oui, cela peut être fait. Voici un exemple simple (avec annotations Spring) d'un contrôleur 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 
    } 
} 

Notez qu'il existe plusieurs façons de traiter les données entrantes à partir de http-demande (@RequestParam, @RequestBody, cartographie automatique des paramètres post-à un haricot etc.). Pour des explications et des tutoriels plus longs et probablement meilleurs, essayez de chercher quelque chose comme 'ressort de repos mvc' (sans guillemets).

Habituellement, le client (navigateur) -stuff est fait avec JavaScript et AJAX, je suis un programmeur backend serveur et ne sais pas beaucoup sur JavaScript, mais il y a beaucoup de bibliothèques disponibles pour aider, par exemple voir jQuery

Voir aussi: REST in Spring 3 MVC

+0

Je ne comprends pas pourquoi vous avez appelé les méthodes store/update/delete 'getResource'. –

+0

Les périls du copier-coller ... ne l'ont même pas remarqué moi-même, je vais le corriger. Merci de l'avoir signalé! – esaj

1

Oui, le repos est très facile à mettre en œuvre en utilisant 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

Puis-je avoir plusieurs arguments @RequestBody? – outvir

+0

Non. Comment cela serait-il logique dans une demande REST? – cproinger

Questions connexes