1. 背景
App1有一个很常用的功能,该功能被其它项目组B看中,App2想以最小的代价最快上线,就是那种页面功能直接复用,避免开发。
2. 方案
以iframe将App1中的功能页面嵌入到App2中,虽然说这种方案不通用,但是确实也是改动最小了。
比如已有的项目设计方案如下,APP1和App2均是前后端分离的设计方案,如下图所示:
方案一:
用户请求进来后,先通过App2的前端发送请求给App2获取权限数据,比如userid,然后根据userid拼接新的url发送给App1从而获取数据,结合静态的页面即可。
此方案的优点是,比较简单App2不需要过多开发,请求均是在App2的前端完成。但缺点是,在前端构造的请求也就是过程3容易被篡改。
方案二:
用户请求进到Nginx,Nginx将后台请求转到APP,App2根据需要比如结合权限,将请求经Nginx发给App1
该方案比方案一稍微麻烦些,需要在webapp端写入稍微多一点的代码(主要是构造请求并在后台将请求发给App1),但是后台构造的请求,相对比较安全。
目前方案也是采用的第二种。
后记
当然这两种方案其实都是应急处理,代价较小,但是不适合阵地战。最后还是要将其服务后以及模块化才是更好的选择。