2011-01-26 52 views
1

我們正在爲複雜數據模型設計REST API。模型就像一棵樹。在一次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 

在客戶端中,他們可以在一個屏幕上處理整個對象,並一次發送所有更改。我不想將資源分成兩個調用:一個用於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 

因此,對於一次調用,有三種不同的操作:添加,更新和刪除。他們需要作爲一項交易來完成。

我們有一個想法,就是將「行動」與數據一起發送,但這對我來說聽起來並不RESTful。有什麼建議麼。

回答

2

實際上,您所做的只是修改您的TOPObject - 刪除NestedObject可以被認爲是更新字段。我希望能夠發送一個PUT(或POST)與我的TopObject,因爲我希望它在修改之後得到200 OK,可能還有一個指向GET的信息返回。

相關問題