返回给前端的数据来自多个微服务,这些数据应该在哪里整合后返回比较合适?

问题描述

返回给前端的数据来自多个微服务,这些数据应该在哪里整合后返回比较合适?
比如有个接口/getOrderInfo获取订单信息
需要从服务A获取用户信息,服务B获取用户信息订单信息,服务C获取库存信息等。
是直接调用一个接口返回 还是调用多个接口返回比较好?

阅读 2.4k
3 个回答
新手上路,请多包涵

getOrderInfo接口在哪个服务就在哪个服务整合啊,获取用户信息也是在这个服务里调用的其他服务吧,封装一下

调一个接口。
比如服务N有接口getOrderInfo,调用流程就是client-->service N-->service a+b+c,所有数据都从N返回到客户端

  1. 看你要获取的核心数据是什么了,例如你的获取订单信息接口 getOrderInfo,核心数据肯定是订单,那么接口就写在订单服务模块里。 接口处理中去调用其他服务获取库存等相关数据。
  2. 调用一个接口好还是调用多个接口好?从业务上分析,数据关联性不大则调用多个接口获取多种数据。从某种层面来说,一个接口应该只返回一种数据,例如上面说的用户信息和库存信息都是在该订单的基础上而言,所以也属于订单信息。这个例子调用一个接口即可。
推荐问题