Как служба может передать универсальный JsonPatchDocument <> в другую службу? - PullRequest
0 голосов
/ 12 октября 2018

Я создал приложение, работающее на Azure (ASP.Net Core 2.1), которое включает микросервисы и клиентское приложение:

Клиентское приложение (Android) --calls -> microservice A (шлюз) --forwards-> микросервис B

В микросервисе B у меня есть следующий метод, определенный в Controller:

[HttpPatch]
[SwaggerOperation(OperationId = nameof(PatchEntityAsync))]
[Route(ApiConstants.Constraints.ControlId, Name = nameof(PatchEntityAsync))]
[SwaggerResponse(StatusCodes.Status204NoContent, "Result of the patch")]
[ProducesResponseType(StatusCodes.Status204NoContent)]
[Consumes(MediaTypes.Application.JsonPatch)]
public async Task PatchEntityAsync(string tenantId, Guid entityId, JsonPatchDocument<EntityModel> entityUpdates)
{
   //
}

Метод принимает JsonPatchDocument для применения к EntityModel.После генерации чванства и запуска автореста я получаю следующий автоматически сгенерированный метод:

Task<HttpOperationResponse> PatchEntityWithHttpMessagesAsync(string tenantId, System.Guid controlId, IList<Operation> entityPatches = default(IList<Operation>), Dictionary<string, List<string>> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken));

Этот автоматически сгенерированный клиент используется микросервисом A , у которого есть аналогичный контроллер, который принимает JsonPatchDocument,

Проблема

Однако, похоже, я утратил ограничение типа: больше не объявляется, что микросервису B требуется список обновленийна типе EntityModel.

Вопрос

Как микросервис A может передать универсальный JsonPatchDocument<> в микросервис B без необходимости манипулировать данными?

...