MVVM架构模式中调用API的正确位置是哪个?

Mat*_*rix -2 mvvm ios swift

MVVM 架构模式中调用 API 的正确位置是哪个?

我遇到过上述场景的两种实现。

1)从视图控制器调用api。2)从viewmodel调用api。

根据 MVVM 架构,哪一种更适合?或者有其他更好的方法在 MVVM 中调用 api 吗?

当然,API 调用是在单独的 Web 服务相关类中实现的。但我必须从某个地方调用该方法(视图控制器或视图模型)

小智 5

视图:仅在此处设置视图逻辑,例如文本、颜色、约束、图层等。超级愚蠢。

模型:是人、书、狗、Todo。它应该只代表数据库中的数据。通常实现 Codable 等。

视图模型:视图应该向视图模型询问所有数据。所以,这就是 api 调用的地方。视图根本不应该知道 api。

UIViewController 是一个视图,应该有一个 viewModel。UIViewController 一定仍然是愚蠢的并且不了解 API。