JsonPatch в проекте веб-API Angular / .NET

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

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

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

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

На уровне (веб) 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 в достаточной степени, чтобы интерпретировать эту часть документации для меня?

Привет, приятель, ты когда-нибудь находил решение для этого или просто использовал подход [FormBody]?

Dash 18.08.2020 19:35

Привет, @Dash, к сожалению, JsonPatch оказался слишком сложным, и для наших нужд не хватило документации. В итоге мы использовали стандартные запросы PUT и POST и полностью отказались от запросов PATCH.

Kyle Vassella 19.08.2020 00:41

Спасибо за обновления. В настоящее время я реализую аналогично вашим потребностям и закончил делать то, что упоминается в следующей ссылке. c-sharpcorner.com/UploadFile/97fc7a/…

Dash 19.08.2020 18:08
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
4
3
1 064
0

Другие вопросы по теме