Я создал приложение, работающее на 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 без необходимости манипулировать данными?