问题描述
比如:
商品模块是一个单独服务对外暴露一些 rest api接口,对外提供商品图片连接,商品基本信息等,
购物车是一个单独的模块(比如该模块包含一个cart表 里面记录了 product_id,num),
在这种先要把用户购物车的商品ID拿到才能在换取商品信息的情况下,要把这两个模块组装后把数据返回
如何更好的解决这个问题?
问题出现的环境背景及自己尝试过哪些方法
个人感觉很不好的解决方案:首先去购物车模块去取用户的购物车下的 product_id,然后在购物车模块内部在去发送 http请求 去请求商品模块的信息~
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
无
你期待的结果是什么?实际看到的错误信息又是什么?
期待更好的解决方案,自己想到的方案 耦合太高~
搞一层网关呗。
只是这样搞的话,相当于说外部就不会感知到有
cartService
和productService
,只知道有个getCartProductInfos
接口。那些服务就只有系统内部相互知道。好处是在网关入口 (
getCartProductInfos
) 做一次权限校验即可,后续都可以认为是安全的(如果需要二次/额外验证那么在服务处再做一次即可,灵活度很高),另外以后服务之间再拆分时,只要网关对外接口不变,前端(包括 WEB 和移动端,如果有的话)方面就不需要改,即网关后面的东西再怎么迭代升级,对前面的系统来说都是无感的;坏处则是多了一层东西,个人觉得除非单纯做 Demo 性质的东西练手,都应该弄个网关,后续拓展会很轻松方便。