2016-09-22 8 views
0

PATCH要求がJSONである部分を更新する必要があります。以下はOwnerDetailsの私のPOJOです。私はHibernateでプレーフレームワークを使用しています。パッチ操作の実装Play - Java

public class OwnerDetailsVO { 

    private int id; 
    private String name; 
    private int age; 

    public int getId() { 
     return id; 
    } 
    public void setId(int id) { 
     this.id = id; 
    } 
    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    public int getAge() { 
     return age; 
    } 
    public void setAge(int age) { 
     this.age = age; 
    } 
} 

私は、この値オブジェクト(VO)に対応するエンティティオブジェクトに対してMySQLで行を作成しました。 PATCH要求の

マイJSON体は、私はルートファイル内のメソッドに正しいルートを設定した、

PATCH /owners/123 

[ 
    { "op": "replace", "path": "/name", "value": "new name" } 
] 

あります。

JSONリクエストを処理する必要があるOwnerControllerクラスがあります。私はPOSTMANを使用してリクエストを送信しています。私は部分的に私のリソースを更新することができるように要求がupdate()関数内で捕獲する必要がありますどのように

public class OwnerController extends Controller { 

    public Result create() { 
    Form<OwnerDetailsVO> odVOForm = Form.form(OwnerDetailsVO.class).bindFromRequest(); 
     if(odVOForm.hasErrors()) { 
      return jsonResult(badRequest(odVOForm.errorsAsJson())); 
     } 

     OwnerDetailsVO odVO = odVOForm.get(); 
     int id = odProcessor.addOwnerDetails(odVO); 

     return jsonResult(ok(Json.toJson("Successfully created owner account with ID: " + id))); 
    } 

    public Result update(int id) { 
     //I am not sure how to capture the data here. 
     //I use Form to create a new VO object in the create() method 

    } 
} 

?私は再生のためにPATCH操作について知る良い文書を見つけることができません!フレームワーク。

編集:WSRequest for Patch操作について見てきましたが、その使用方法がわかりません。それは役に立ちますか?

答えて

1

これは働いていないフレームワーク

プレイに
public Item patch(Long id, JsonNode json) { 

    //find the store item 
    Item item = Item.find.byId(id); 
    if(item == null) { 
     return null; 
    } 

    //convert json to update item 
    Item updateItem; 
    updateItem = Json.fromJson(json, Item.class); 


    if(updateItem.name != null){ 
     item.name = updateItem.name; 
    } 
    if(updateItem.price != null){ 
     item.price = updateItem.price; 
    } 
    item.save(); 

    return item; 
} 
+0

をebeansを使用したサンプルコードです。 'JsonMappingException:インスタンスを逆シリアル化できません.'例外が発生しています。 PATCHリクエストはどのように 'Item'型に変換できますか? –

関連する問題