使用API​​而不是直接数据库访问的优缺点

时间:2016-04-22 02:13:08

标签: php api rest

本周我发现自己正在讨论正在开发的Web应用程序以及它是否应该利用正在创建的API。

以下是这种情况。我有一个带有MySQL数据库的PHP MVC Web应用程序以及几个内部开发的移动应用程序。对于移动应用,我们正在建立一个休息API。最大的问题是为什么我的PHP Web应用程序现在应该使用那个rest api?我一直希望将API用于需要与我的数据库或基于不同技术构建的系统连接的第三方系统。 Web应用程序肯定不是第三方系统,服务是PHP。如果API与Web应用程序位于不同的服务器上,那么我猜它可能被视为第三方系统......尚未确定。

对我而言,将API用于Web应用程序似乎很奇怪,特别是因为API服务将限制在Web应用程序中可用功能的大约50%,这使我构建另外50%的功能是网络应用程序的独特之处。我还预见到Web应用程序会逐步通过服务层而不是直接访问数据库。另一方面,我看到更多的维护工作,我的网络应用程序有一个代码库,可以访问数据库以及移动应用程序的api中内置的类似功能。

是否有人发现自己处于类似情况,并且可以提供一些技术优缺点,以解释为什么我应该使用API​​或者能指出一个可靠的案例研究?

1 个答案:

答案 0 :(得分:2)

优点:

  • 如果有一天你决定将后端应用移动到另一台机器怎么办? 使用API​​,您的应用代码无需更改。
  • 如果有一天你成长,需要扩展到10000个后端应用而不是1个,该怎么办? 使用API​​,您的应用代码无需更改。
  • 如果有一天你决定将MySQL换成Mongo怎么办? 使用API​​,您的应用代码无需更改。
  • ^强制分离数据访问层(DB)和应用程序之间的关注点

缺点:

  • 编写应用层时预先编写更多代码
  • 当您需要支持API尚不支持的新应用层功能时,需要进行更多增量工作

对我来说,职业选手显然会赢。