我已经构建了一个在Azure(ASP.Net Core 2.1)上运行的应用程序,其中涉及微服务和客户端应用程序:
客户端应用程序(Android)-调用->微服务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的类似Controller。
问题
但是,似乎我已经失去类型约束:不再宣传微服务 B 要求对EntityModel
类型进行更新。
问题
微服务 A 如何将通用JsonPatchDocument<>
转移到微服务 B ,而无需处理数据?