JsonPatch в проекте Angular / .NET Web API - PullRequest
0 голосов
/ 27 сентября 2018

Я использую расширение KevinDockx JsonPatch для Visual Studio.Мой проект использует .NET Web API (не Core) и Angular (6)..Net Web API не поддерживает пространство имен JsonPatchDocument, поэтому необходимо расширение JsonPatch KevinDock.

Я читаю его документацию здесь: https://github.com/KevinDockx/JsonPatch/blob/master/README.md

JsonPatchсостоит из двух частей:

На клиенте (потребителе API) : класс JsonPatchDocument / JsonPatchDocument для создания набора изменений, применяемого к вашему объекту на стороне API.

На уровне (Web) API : метод ApplyTo для применения этих изменений к вашим объектам.

Но у меня возникают проблемы с пониманием части 1, где он создаетКласс JsonPatchDocument на клиенте.В моем случае я предполагаю, что это означает, что мне нужно построить это JsonPatchDocument где-нибудь в Angular.Код для этого шага:

JsonPatchDocument<DTO.Expense> patchDoc = new JsonPatchDocument<DTO.Expense>();
patchDoc.Replace(e => e.Description, expense.Description);

// serialize
var serializedItemToUpdate = JsonConvert.SerializeObject(patchDoc);

// create the patch request
var method = new HttpMethod("PATCH");
var request = new HttpRequestMessage(method, "api/expenses/" + id)
{
    Content = new StringContent(serializedItemToUpdate,
    System.Text.Encoding.Unicode, "application/json")
};

// send it, using an HttpClient instance
client.SendAsync(request);

Однако я не уверен, как реализовать эту часть кода в моем Angular-коде, или я даже правильно интерпретирую эту часть инструкций.Например, скажем, я уже установил JsonPatch в своем API через консоль диспетчера пакетов NuGet - как тогда я мог бы ссылаться на JsonPatchDocument из Angular (JsonPatchDocument<DTO.Expense> patchDoc = new JsonPatchDocument<DTO.Expense>();), поскольку Angular не имеет этой установки?Кто-нибудь работал с JsonPatch в проекте Angular достаточно, чтобы интерпретировать эту часть документации для меня?

...