2011-01-30 8 views
5

私は、クライアントとサーバーアプリケーションがRESTサービスを使って互いに話をしたいと思っています。私はSpring MVCを使ってこれを設計しようとしています。私はこのような何かを探しています:Spring MVC RESTサービスを設計するには?

  1. クライアントは、POSTのRESTサービスの呼び出しを行いsaveEmployee(employeeDTO, companyDTO)
  2. ServerはそのコントローラーにsaveEmployee(employeeDTO, companyDTO)

を同様のPOSTメソッドを持っている、これは春のMVCを使用して行うことができますか?

+1

ここでは良い例のようになります。http://www.stupidjavatricks.com/?p=54 – bwobbones

+1

@bwobbones、あなたは答えにコメントを変換する必要があります;) –

+3

@RC、したくありませんでした他の人の仕事を主張している... – bwobbones

答えて

13

はい、これは可能です。ここでRESTfulなコントローラの(春注釈付き)、簡単な例です:HTTPリクエスト(@RequestParam、@RequestBody、にポストパラメータの自動マッピングからの入力データを処理する複数の方法があること

@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 
    } 
} 

注意豆など)。もっと長く、そしておそらくより良い解説やチュートリアルのために、 'rest spring mvc'(引用符なし)のようなものを検索してみてください。

通常、クライアントサイド(ブラウザ)はJavaScriptとAJAXで処理されますが、私はサーバーバックエンドプログラマであり、JavaScriptについてはあまり知られていませんが、役立つライブラリがたくさんあります。 jQuery

も参照してくださいを参照してください。REST in Spring 3 MVC

+0

私はなぜあなたがstore/update/deleteメソッド 'getResource'に名前を付けたのか分かりません。 –

+0

コピーペーストの危険性...自分自身に気付かなかった、私はそれを修正します。これを指摘してくれてありがとう! – esaj

1

はい、残りは春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

関連する問題