Мы разрабатываем API REST для сложной модели данных. Модель скорее напоминает дерево.Обработка нескольких действий в одном вызове 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. Я хотел бы сделать один вызов 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 для меня. Какие-либо предложения.