我们正在为复杂的数据模型设计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
因此,对于一个调用,有三个不同的操作:添加,更新和删除。它们需要作为一个交易完成。
我们有想法发送带有数据的“动作”,但这听起来并不适合我。任何建议。
答案 0 :(得分:2)
实际上,您所做的只是修改TOPObject
- 删除NestedObject可以被认为是更新字段。我希望能够在修改后发送PUT
(或POST
我想要的TopObject
并获得200 OK
,可能与指向GET
该信息的链接。