Aktualizacje częściowych elementów w WebAPI PUT / POST
Załóżmy, że masz metodę repozytorium do aktualizacji dokumentu:
public Document UpdateDocument(Document document)
{
Document serverDocument = _db.Documents.Find(document.Id);
serverDocument.Title = document.Title;
serverDocument.Content = document.Content;
_db.SaveChanges();
return serverDocument;
}
W tym przypadku jednostka ma dwie właściwości. Podczas aktualizowania dokumentu obie te właściwości są wymagane w żądaniu JSON, więc żądanie doPUT /api/folder
z ciałem
{
"documentId" = "1",
"title" = "Updated Title"
}
zwróci błąd, ponieważ „treść” nie została podana. Powodem, dla którego to robię, jest to, że nawet w przypadku właściwości i właściwości, których użytkownik nie aktualizuje, bezpieczniejsze wydaje się wymuszenie na kliencie określenia tych pól w żądaniu, aby uniknąć nadpisywania nieokreślonych pól serwerem null.
To doprowadziło mnie do praktyki wymagającej zawsze każdej właściwości, którą można aktualizować w żądaniach PUT i POST, nawet jeśli oznacza to określenie wartości null dla tych właściwości.
Czy to fajne, czy też istnieje wzorzec / praktyka, o której jeszcze się nie dowiedziałem, które mogą ułatwić częściowe aktualizacje, wysyłając tylko to, co jest potrzebne przez przewód?