2011-01-26 18 views
1

複雑なデータモデル用のREST APIを設計しています。モデルは木のようです。1つのREST呼び出しで複数のアクションを処理する

TOPObject 
    Name: XX 
    Start Date: 01/10/2011 
    End Date: 02/18/2011 
    List 
    NestedObject 
     Name: NO1 
     Code: CCC1 
    NestedObject 
     Name: NO2 
     Code: CCC2 

クライアント内では、このオブジェクト全体を1つの画面で操作してすべての変更を一度に送信できます。リソースを2つの呼び出し(TOPObject用とNestedObject用)に分割したくありません。私はTOPObjectのPOSTを1回呼び出すようにしたいと思います。

階層内のさまざまなレベルに複数の変更を行うにはどうすればよいですか。たとえば、彼らがこのようにオブジェクトを変更する場合。

TOPObject 
    Name: XY /* changed */ 
    Start Date: 01/10/2011 
    End Date: 02/18/2011 
    List 
    NestedObject 
     Name: NO1 
     Code: CCC1 
    /* Notice that NesteObject NO2 was removed as well */ 
    NestedObject /* added */ 
     Name: NO3 
     Code: CCC3 

したがって、1つのコールでは、追加、更新、および削除の3つの異なるアクションがあります。それらは1つのトランザクションとして実行する必要があります。

「アクション」をデータとともに送信するというアイデアがありましたが、それは私にとってRESTfulではありません。助言がありますか。

答えて

2

実際には、あなたが行っているのは、あなたの修正です。TOPObject - NestedObjectを削除することは、フィールドを更新することと考えることができます。私はの情報を元に戻して200 OKを返してもらいたいので、TopObjectPUT(またはPOST)を送信できると期待しています。

関連する問題