现有一个已运营的网站,网站上提供了一套评论系统,评论系统中包含评论功能及相关的奖励积分、消息通知等。
现在公司需要制作一款APP,APP中也包含评论系统。
根据业务分析,有四种解决方案:
- 把评论系统及相关的代码复制一份到APP接口的项目中
- 把评论系统及相关的代码打包引入到APP接口的项目中
- APP接口服务器在接收到APP的评论相关请求的时候转发到网站服务器进行处理
- APP中直接请求网站服务器的评论接口
这四种方案都有各自的好处:
- 第一种实现起来最快,但是易用性、扩展性最差。而且代码混乱。
- 第二种方式相对比较理想,但是需要对现有的整个评论功能的代码进行抽离。花费时间较长。
- 第三方方式架构较为清晰,但是会导致请求处理流程变长,其中某一个环境出问题会影响整个流程。
- 第四种实现较为简单,但是把不同的项目的接口混淆,感觉不太合适。
个人想法..
如果是不同项目, 就分开两份儿... 毕竟项目不同以后的需求有可能不同, 不要相互绑住对方.
相同项目, 不同端(pc,网页,手机), 那也最多只是参数不同啊, 用的是相同的后台 比如你说的支付宝. 顶多中间有一层不一样, 但是后面就是统一的了, 因为算是同一个项目不同入口而已.
感觉你说的是像是相同项目, 数据是可以互通的, 那就只是不同入口而已... 加参数记录和判断是哪个端来的消息, 但是再后面的逻辑就是一样的...
综上, 如果是我的话, 会在中间加一个步骤(可能是参数, 也可能是逻辑), 后面用统一的代码逻辑.
这个问题在于,在做第一个项目的时候就没有考虑到评论系统单独剥离出来服务化
如果以后还有可能第三个项目也用到这个评论,建议现在剥离出来,然后提供统一的API接口