Скажем, у вас есть метод репозитория для обновления документа:
public Document UpdateDocument(Document document)
{
Document serverDocument = _db.Documents.Find(document.Id);
serverDocument.Title = document.Title;
serverDocument.Content = document.Content;
_db.SaveChanges();
return serverDocument;
}
В этом случае сущность имеет два свойства. При обновлении документа оба эти свойства требуются в запросе JSON, поэтому запрос к PUT /api/folder
с телом
{
"documentId" = "1",
"title" = "Updated Title"
}
вернет ошибку, потому что «контент» не был предоставлен. Причина, по которой я это делаю, заключается в том, что даже для свойств, допускающих значение NULL, и свойств, которые пользователь не обновляет, кажется более безопасным заставить клиента указать эти поля в запросе, чтобы избежать перезаписи неуказанных полей нулевыми значениями на стороне сервера.
Это привело меня к тому, что я всегда требовал каждое обновляемое свойство в запросах PUT и POST, даже если это означает, что для этих свойств указано значение null.
Это круто, или есть шаблон/практика, о которой я еще не узнал, которая может облегчить частичные обновления, отправляя по сети только то, что необходимо?