Предположим, у нас есть счет-фактура, сохраненная в состоянии проекта в РСУБД. Счет состоит из трех позиций. Клиент-клиент получает счет-фактуру и изменяет позиции.Как обновить вложенные данные из запроса PUT
GET/счета/123
{
"InvoiceId" : "123",
"lineitems":
[
{ "id":"A", "qty":"5"},
{ "id":"B", "qty":"5"},
]
}
Предположим, пользователь изменяет фактуру следующим образом; изменения количества Пункт А Удаляет Item B. Добавляет новый элемент C.
Результат:
{
"InvoiceId" : "123",
"lineitems":
[
{ "id":"A", "qty":"10"},
{ "id":"D", "qty":"5"},
]
}
Чистое изменение в том, что линия была удалена, линия была обновлена, и добавлена строка.
Затем пользователь сохраняет черновик счета, в результате которого возникает запрос PUT.
PUT/счет/123
Что является лучшей стратегией для обновления позиции на сервере?
Имейте в виду, что deleteing все позиции и создавать их с нуля будет терять любые мета-данные по этим линиям (сотворяемые, дате создания, последнего изменения по ...)
Спасибо,
Моделирование с субресурсами - это другой способ, который позволяет битам, которые были изменены, обновляться напрямую. –