繁体   English   中英

使用API​​代替直接DB访问的优缺点

[英]Pros and Cons of using API instead of direct DB Access

我在整个星期的几次讨论中都发现自己正在开发一个Web应用程序,以及它是否应该利用正在创建的API。

这是情况。 我有一个带有MySQL DB的PHP MVC Web应用程序,以及几个正在内部开发的移动应用程序。 对于移动应用程序,我们正在构建rest api。 最大的问题是为什么我的PHP Web应用程序现在应该使用该rest api? 我一直期望API可以用于需要与我的数据库进行接口的第三方系统,也可以用于基于其他技术的系统。 该Web应用程序肯定不是第三方系统,并且服务使用PHP。 如果该API与该Web应用程序位于不同的服务器上,那么我认为它可以被认为是第三方系统...尚未确定。

对我而言,为Web应用程序利用API似乎很奇怪,尤其是因为API服务将限于Web应用程序中可用功能的约50%,而我则只能建立其他50%网络应用。 我还预见到,逐步通过服务层将使Web应用程序性能下降,而不仅仅是直接访问数据库。 另一方面,我看到更多的维护工作为我的Web应用程序提供了代码库,使数据库达到了数据库,并且为移动应用程序的api内置了类似的功能。

有没有人发现自己处于类似情况并且可以提供一些技术利弊,说明为什么我应该只使用API​​或可以为我提供可靠的案例研究?

优点:

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

缺点:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM