从 MVC Web 应用程序调用 REST API


Calling a REST API from an MVC Web Application

我有一个MVC PHP Web应用程序需要调用REST API。我不清楚我应该从控制器还是从模型调用 API?查看各种资源,我得到的信息好坏参半。我认为它应该来自模型,因为我所做的只是处理数据并将其传递给控制器,对吗?

更多细节需要澄清。我确实可以完全控制我正在构建的 REST API,并且也是 PHP 中的。然而,该API也将被我的团队构建的iOS和Android配套应用程序以及在专有设备上运行的其他一些应用程序所利用。

最初的计划是 Web 应用程序不会利用 API,而只是直接转到数据库以减少任何开销,但后来进行了几次辩论,我倾向于使用 API。

如果 REST 资源是模型的表示形式,或者如果您需要跨多个控制器的此功能,我会从模型中调用。

如果控制器不是 100% 特定于模型表示形式,或者它仅对您正在使用的控制器/视图很重要,则从控制器调用。

您应该从控制器调用 Web API。模型是数据从控制器传递到视图的方式。模型应该只有数据,没有业务逻辑。

从 Web API 获取响应时,应将数据放入模型并传递到视图

模型视图控制器构成了 MVC 模式。控制器负责将数据放入模型,并将其传递给视图。视图采用模型并显示数据,正如它被告知的那样。模型或视图中都没有业务逻辑。

理想情况下,您将 API 代码放入控制器使用的类库中。这允许您将业务逻辑从网站中分离出来,并放入一个单独的组件中。