让我们看看这 2 个微服务:
处理汽车订单的微服务:
桌子:
API: /GET /orders
处理汽车数据的微服务:
API: /GET /cars
现在的问题是:
如果我想在我的 UI 应用程序中显示分页和排序的合并数据?
[order_id ,car_id ,color ,date ,price .....]
例如:
第一种情况:前 500 行,按
order_id
排序
orders
apicar_id
并丰富来自cars
api第二种情况:前 500 行,按
car_id
排序
order_id
并丰富来自orders
api我实现了获取数据的代码,这是为什么:
const sortByOrder=(sortedBy)=>{
return ORDER_FIELDS.includes(sortedBy)
}
const sortByOrCars=(sortedBy)=>{
return ORDER_FIELDS.includes(sortedBy)
}
async function fetchOrderData(sortedBy,batchSize){
if(sortByOrder(sortedBy)){
const orderData = await fetchOrderData(sortedBy,batchSize);
const orderIds = orderData.map(order=>order.id);
const cars = await fetchCars(orderIds);
return joinOrderAndCars(orderData,cars);
}
if(sortByOrCars(sortedBy)){
const caersData = await fetchCarsData(sortedBy,batchSize);
const carsIds = carsData.map(car=>car.id);
const orders = await fetchOrders(carsIds);
return joinOrderAndCars(orders,carsData);
}
}
这是难以维持的幼稚方法
寻找更通用的解决方案或模式,并向其他人学习并遇到这个问题