当涉及到通过将 Web 服务引入现有架构来扩展 Web 应用程序时,开发人员是否可以想到一种可能的架构,反之亦然。在这种情况下,主要关注的是数据完整性和安全性。
下图将建议开发人员可以想到的两种方法。
此架构表明所有请求都应由单独的服务层处理。因此,只有服务层才能与数据库通信,同时满足Web应用和网关的请求。
第二种方法显示 Web 应用程序直接与数据库通信。例如,管理门户。同时,可以有一个外部网络服务也与数据库通信。这种方法可能会导致违反数据完整性的情况。但是,引入外部 Web 服务可能比重构现有 Web 应用程序以从开发人员端调用 Web 服务更容易。因此,我们是否仍然可以通过使用外部 Web 服务和单独的 Web 应用程序来为长期后果做出妥协,而不是使用单个 Web 服务层来满足 Web 应用程序和网关的需求。任何对此的合理评论将不胜感激。
最佳答案
您可以构建一个可以访问所有内容的 API。换句话说,Web 应用程序可以使用 Ajax/WebSockets 通过 rest/rpc api 工作。
由于一切都通过 API,因此不应在任何时候强制执行数据完整性。此外,您将清楚地区分客户端、API 和数据库。
这将允许您用其他任何东西替换数据库而不会破坏系统的其他部分。
关于java - Web 服务前面的数据库级别的数据完整性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16810404/