我试图了解以下两个选项中哪一个是正确的方法以及原因。
假设我们有GetHotelInfo(hotel_id)
从 Web 到控制器调用的 API。
GetHotelInfo的逻辑是:
调用GetHotelPropertyData()
(位置、设施……)
调用GetHotelPrice(hotel_id, dates…)
调用GetHotelReviews(hotel_id)
一旦所有结果返回,处理并合并数据并返回 1 个包含酒店所有相关数据的对象。
选项 1:
创建 3 个不同的存储库(HotelPropertyRepo、HotelPriceRepo、HotelReviewsRepo)
创建将使用这 3 个存储库并返回最终结果的 GetHotelInfo 用例。
选项 2:
创建 3 个不同的存储库(HotelPropertyRepo、HotelPriceRepo、HotelReviewsRepo)
创建 3 个不同的用例(GetHotelPropertyDataUseCase、GetHotelPriceUseCase、GetHotelReviewsUseCase)
创建 GetHotelInfoUseCase 来编排前 3 个用例。(它也可以是控制器,但这是另一个主题)
假设现在仅GetHotelInfo
暴露在 Web 上,但也许将来我也会暴露一些内部请求。
如果 GetHotelInfo 的实际逻辑不是 3 个端点的组合而是 10 个端点的组合,答案会有所不同吗?
PIPIONE
MYYA
江户川乱折腾
相关分类