2017-03-26 8 views
0

Spring RESTREST servicesを理解しようとしています。私はこのようなPOST要求のためのコントローラを作成しました:Java - Spring REST - その他のパラメータ

@RequestMapping(method = RequestMethod.POST, path = "newItem") 
public ResponseEntity<Item> createItem(
     @RequestParam(value = "name") String name, 
     @RequestParam(value = "date") String date, 
     @RequestParam(value = "location") String location) { 

    Item item = new Item(name, date, location); 

     //save into database 
} 

私の質問は:私の項目がある場合の15個の属性を言わせて何。それぞれに@RequestParamを作成する必要がありますか?それともそれをやる別の方法ですか?どこから始めるべきか教えていただけますか?

答えて

1

私の項目はのは、15個の属性を言わせている場合は何を定義することができます。それぞれに対して @RequestParamを作成する必要がありますか?それともそれをやる別の方法ですか? どこから始めたらいいですか?

@RequestMapping(method = RequestMethod.POST, path = "newItem") 
public ResponseEntity<Item> createItem(@RequestBody Item item) { 

    Item item = new Item(name, date, location); 
     //save into database 
    } 

ので、要求を受信したとき:以下に示すように

POSTリクエストデータは、それらが@RequestParamを使用して消費されるべきではない身体の一部であるので、あなたのコントローラメソッドを変更する必要がありますSpring DispatcherServletの場合、itemオブジェクトには、要求データが取り込まれます(デシリアライズと呼ばれます)。

あなたはこれがまさにそれである詳細@RequestBody

+0

ためhereを見ることができます。他の人のための1つのこと。モデルクラスを引数のない1つのパブリックコンストラクタで作成します。これにより、フレームワークは@Requestbodyに存在する任意の数の属性によってオブジェクトを作成できます。 – miskohut

0

POSTの場合のUsuarlアプローチは、要求本体にデータを送信することです。

@RequestBody String postReqeust 

また、スプリングは、リクエストボディからオブジェクトへのいくつかのコンバーターを提供します。たとえば、あなたは、JSONオブジェクトを記述するクラスITMを定義し、メソッド

public ResponseEntity<Item> createItem(@RequestBody NewItemReqeust request) 
関連する問題