我应该使用REST作为更大系统模块之间的“通信媒介”吗?

时间:2015-02-13 14:52:27

标签: api rest communication

我的意思是:我们有一个具有不同子模块的系统,每个子模块都有自己的(MVC web)应用程序。我想过创建一个访问数据库并向应用程序提供数据的REST服务,因此没有应用程序本身可以直接访问数据库。 API调用访问数据库和应用程序选择的所有方法,使用等等。基本上,Web应用程序的模型本身不会映射到通常在MVC应用程序中完成的任何数据库实体(例如在具有entityframework的ASP.net中) )。

为什么我首先考虑这个想法是因为我无法弄清楚如何将模型映射到数据库表而不必映射到所有表及其属性(为某些应用程序切换一些,我们'重新使用Phalcon)并在每个应用程序中有数百个未使用的模型。为此创建REST API的想法有多糟糕?

1 个答案:

答案 0 :(得分:1)

如果每个应用程序都将访问同一个数据库,则必须维护许多样板模型代码(sql / orm)。如果数据库发生了一些变化,您必须将更改传播到每个应用程序。

在维护方面,最好通过Web服务公开业务操作,这是与数据库联系的唯一接触点。


enter image description here

如果Web服务中的数据库更改在应用程序中不可见

enter image description here

另一方面,如果没有前面的Web服务,每次更改数据库都需要在每个应用程序中进行更改。