【发布时间】:2021-10-21 08:23:25
【问题描述】:
我有一个要求,我需要向用户显示具有 4 或 5 条不同信息的标准化数据模型,例如“手续费”、“帐号”、“总订单”等,这些信息可能来自许多不同的第三方api。 例如: 仓库 A 有一个返回一些 JSON 数据的 api 仓库 B 有一个返回一些 JSON 数据的 api
两个 API 都有不同格式的 JSON 响应,但是它们都包含我需要的数据。他们只是在不同的领域。然而,在未来的某个时候,可能需要发出额外的请求才能从给定的 Warehouse api 获取所需的数据。
我需要在本地存储这些数据。目前我做以下事情:
private async Task<Warehouse> GetWareHouseDataAsync(Warehouse warehouse, CancellationToken ct = default)
{
switch (Warehouse.ChainType)
{
case ChainType.UPS:
{
RawUpsDataDTO rawUpsWarehouse = await _UpsWarehouseService.GetWarehouseDataAsync(warehouse.Id, ct);
Warehouse freshWareHouseData = WarehouseConverter.Convert(rawUpsWarehouse);
return freshUpsWareHouseData;
}
case ChainType.Amazon:
{
...
}
case ChainType.None:
default:
{
...
}
}
}
Warehouse 是所有 api 的标准化模型。
然后我将Warehouse 持久化到数据库中:
warehouse = await _warehouseRepository.AddAsync(warehouse, ct);
我有点困惑,试图找出哪种方法更适合:
A.为支持的仓库创建单独的数据库表 B. 创建一个名为“WarehouseOperations”之类的标准化数据库表(目前是这样),并在 Convert 方法中映射字段。
或任何其他可能更好的方法?
【问题讨论】:
标签: c# asp.net-core asp.net-web-api asp.net-core-webapi