在一个REST调用中处理多个操作

在一个REST调用中处理多个操作,rest,Rest,我们正在为一个复杂的数据模型设计一个RESTAPI。这个模型很像一棵树 TOPObject Name: XX Start Date: 01/10/2011 End Date: 02/18/2011 List NestedObject Name: NO1 Code: CCC1 NestedObject Name: NO2 Code: CCC2 在客户端中,他们可以在一个屏幕上处

我们正在为一个复杂的数据模型设计一个RESTAPI。这个模型很像一棵树

TOPObject  
  Name: XX  
  Start Date: 01/10/2011  
  End Date: 02/18/2011  
  List  
    NestedObject  
      Name: NO1 
      Code: CCC1  
    NestedObject  
      Name: NO2 
      Code: CCC2  
在客户端中,他们可以在一个屏幕上处理整个对象,并一次发送所有更改。我不想将资源分成两个调用:一个用于toObject,另一个用于NestedObject。我想为TOPObject打一个电话给POST

我如何处理继承权中不同层次的多重变化。例如,如果他们像这样更改对象

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  
因此,对于一个调用,有三个不同的操作:添加、更新和删除。它们需要作为一个事务来完成


我们本来想把“动作”和数据一起发送的,但我觉得这听起来并不轻松。任何建议。

实际上,您所做的只是修改
拓扑对象
——删除嵌套对象可以被视为更新字段。我希望能够发送一个
PUT
(或
POST
)和我的
tobject
,就像我希望的那样,在修改之后,我可以得到一个
200 OK
,可能还有一个链接,指向
get
,返回该信息