我已经构建了一个在 Azure (ASP.Net Core 2.1) 上运行的应用程序,其中涉及微服务和客户端应用程序:
客户端应用程序(Android)--calls--> 微服务 A(网关)--forwards-> 微服务 B
在微服务B中,我在 an 中定义了以下方法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)
{
//
}
该方法接受 aJsonPatchDocument
以应用于 a EntityModel
。生成招摇并运行 autorest 后,我得到以下自动生成的方法:
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 ?