複雑なデータモデル用の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ではありません。助言がありますか。