【发布时间】:2016-04-22 02:13:07
【问题描述】:
我发现自己在一周内多次讨论正在开发的 Web 应用程序以及它是否应该利用正在创建的 API。
情况是这样的。我有一个带有 MySQL DB 的 PHP MVC Web 应用程序以及几个正在内部开发的移动应用程序。对于移动应用程序,我们正在构建一个 rest api。最大的问题是为什么我的 PHP Web 应用程序现在应该使用那个 rest api?我一直希望 API 用于需要与我的数据库交互的第三方系统或基于不同技术构建的系统。 Web 应用程序当然不是第三方系统,服务使用 PHP。如果 API 与 Web 应用程序位于不同的服务器上,那么我猜它可能被视为第三方系统......这还没有决定。
对我来说,将 API 用于 Web 应用程序似乎很奇怪,特别是因为 API 服务将被限制在 Web 应用程序中可用功能的 50% 左右,让我构建另外 50% 的功能对 Web 应用程序来说是独一无二的。我还预见到通过服务层而不是直接访问数据库的 Web 应用程序的性能会受到影响。另一方面,我看到更多的维护工作有一个代码库,用于我的网络应用程序访问数据库,以及内置在移动应用程序 api 中的类似功能。
有没有人发现自己处于类似情况并且可以提供一些技术优缺点来说明为什么我应该只使用 API 或者可以指出一个可靠的案例研究?
【问题讨论】:
-
如果有帮助,当我编写 PHP 应用程序时,我会创建应用程序将使用的服务(例如与数据库中的产品交互的服务),这些服务直接在内部使用 (
app()->service->doSomething()),并且仅如果需要通过 HTTP 将功能公开为 API,则需要在顶部添加一个薄层。 -
API 必须访问数据库不是吗?因此,无论哪种方式,您都在查询数据库。如果 API 在单独的服务器上,我肯定会反对它,因为它使用该服务器资源而不是使用它自己的资源。