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

时间:2011-01-26 16:58:17

标签: rest

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

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

在客户端内,他们可以在一个屏幕上处理整个对象,并立即发送所有更改。我不想将资源分成两个调用:一个用于TOPObject,一个用于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  

因此,对于一个调用,有三个不同的操作:添加,更新和删除。它们需要作为一个交易完成。

我们有想法发送带有数据的“动作”,但这听起来并不适合我。任何建议。

1 个答案:

答案 0 :(得分:2)

实际上,您所做的只是修改TOPObject - 删除NestedObject可以被认为是更新字段。我希望能够在修改后发送PUT(或POST我想要的TopObject并获得200 OK,可能与指向GET该信息的链接。