Мы разрабатываем 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.Я хотел бы сделать один вызов POST для TOPObject.
Как мне справиться с множественными изменениями на разных уровнях в иерархии.Например, если они меняют объект таким образом.
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.Любые предложения.