我试图了解以下两个选项中的哪一个是正确的方法以及原因。
假设我们有从 Web 调用到 Controller 的 GetHotelInfo(hotel_id)
API。
GetHotelInfo 的逻辑是:
GetHotelPropertyData()
(位置、设施...) GetHotelPrice(hotel_id, dates…)
GetHotelReviews(hotel_id)
一旦所有结果返回,处理并合并数据并返回包含酒店所有相关数据的 1 个对象。
选项 1 :
HotelReviewsRepo)
返回最终结果。
选项 2 :
HotelReviewsRepo)
GetHotelPriceUseCase, GetHotelReviewsUseCase)
用例。 (它也可以是一个 Controller ,但那是一个不同的话题)
假设现在只有
GetHotelInfo
暴露在 Web 上,但也许在 future ,我也会暴露一些内部请求。如果 GetHotelInfo 的实际逻辑不是 3 个端点的组合而是 10 个端点的组合,那么答案是否会有所不同?
最佳答案
您可以在 Clean Architecture with GO 的“Manato Kuroda ”中看到类似的方法(称为 Get()
)
马纳托指出:
这就是为什么在示例存储库
manakuro/golang-clean-architecture
中,Manato 为用例层创建了三个目录:您可以使用该示例来调整您的情况,首先在
GetHotelInfo
文件中声明 hotel_interactor.go
,并取决于 hotel_repository
中声明的特定业务方法和 hotel_presenter
中定义的响应关于go - (Golang) Clean Architecture - 谁来编排?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60732673/