Обработка нескольких действий в одном вызове REST - PullRequest
1 голос
/ 26 января 2011

Мы разрабатываем 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.Любые предложения.

1 Ответ

2 голосов
/ 27 января 2011

По сути, все, что вы делаете - это модифицируете TOPObject - удаление NestedObject можно рассматривать как обновление поля.Я ожидал, что смогу отправить PUT (или POST) с моим TopObject, как я хочу, чтобы он был после изменений, и получить 200 OK обратно, возможно, со ссылкой на GET эту информациюназад.

...