API 网关(Zuul)合并两个微服务响应
API gateway (Zuul) merging two micro service response
我有两个微服务,用户微服务和订单微服务。
用户微服务return用户详情和订单微服务return用户订单详情
http://localhost:8080/microservice1/getuser
{"id":"100","name":"test"}
http://localhost:8081/microservice2/getorders
{"userid":"100","orders":{"orderid":"5001","productname":"mobilephone"}}
我正在使用 Spring 云 Zuul 作为 API 网关,它将请求路由到每个微服务。
http://localhost:9090/api/microservice1/getuser
http://localhost:9090/api/microservice2/getorders
现在 UI,我需要调用两个端点
他们有没有办法合并微服务的响应,比如
{"id":"100","name":"test","orders":{"orderid":"5001","productname":"mobilephone"}}
这样客户端只需要调用一个端点http://localhost:9090/api/getdetail
我们如何在 API 网关级别实现这一点?
Zuul 不应该用于聚合响应,您可以创建编排微服务服务并在内部使用 restTemplate 获取所有响应并根据需要聚合。
保持 Zuul 无状态,网关不应该有任何逻辑或有状态。
我有两个微服务,用户微服务和订单微服务。
用户微服务return用户详情和订单微服务return用户订单详情
http://localhost:8080/microservice1/getuser
{"id":"100","name":"test"}
http://localhost:8081/microservice2/getorders
{"userid":"100","orders":{"orderid":"5001","productname":"mobilephone"}}
我正在使用 Spring 云 Zuul 作为 API 网关,它将请求路由到每个微服务。
http://localhost:9090/api/microservice1/getuser
http://localhost:9090/api/microservice2/getorders
现在 UI,我需要调用两个端点
他们有没有办法合并微服务的响应,比如 {"id":"100","name":"test","orders":{"orderid":"5001","productname":"mobilephone"}}
这样客户端只需要调用一个端点http://localhost:9090/api/getdetail
我们如何在 API 网关级别实现这一点?
Zuul 不应该用于聚合响应,您可以创建编排微服务服务并在内部使用 restTemplate 获取所有响应并根据需要聚合。
保持 Zuul 无状态,网关不应该有任何逻辑或有状态。