【问题标题】:Use spring cloud gateway to merge results from two microservices使用spring cloud gateway合并两个微服务的结果
【发布时间】:2019-12-15 09:25:24
【问题描述】:

假设我有两个微服务,支付和公司。我有一个端点 /payments/late ,它返回延迟付款列表:

[{'id': 1, due_date: 2019-05-05, value: 1234.123, company_id: 5}]

我想在我的前端应用程序上创建一个表格来显示这样的表格?

付款:

Company Name | Due Date        | Amount
    XXX      | 05/05/2018      | 1234.12

所以我的前端应用程序必须从两个不同的微服务调用两个 Web 服务。

我正在考虑添加一个 API 网关标签,该标签将负责:

a) 调用支付网络服务。 b) 从支付网络服务返回中获取 ID,并调用公司网络服务以获取公司数据。 c) 将公司数据与支付数据合并到一个 json 中:

[{'id': 1, due_date: 2019-05-05, value: 1234.123, company_id: 5, company_name: "XXXXX"}]

或类似的东西。

是否可以使用 Spring Cloud Gateway 做到这一点?

【问题讨论】:

  • 您可以使用spring cloud gateway 来代理您的请求,但我在覆盖http 响应时遇到了麻烦,因为它是基于webflux 构建的。但是,您可以在网关上创建一个 RestController 来组合您的查询

标签: java spring rest microservices spring-cloud-gateway


【解决方案1】:

您可以使用 Feign Client 从 Payments Webservice 调用您的 Company Webservice,然后在 Payments Webservice 中合并结果并将其返回给 UI。

从 UI 调用 /payments/late 并获取合并结果。

【讨论】:

    猜你喜欢
    • 2021-10-23
    • 2019-07-04
    • 2019-05-31
    • 2018-04-26
    • 2020-06-06
    • 2018-10-25
    • 2018-03-28
    • 2019-03-22
    • 2022-07-21
    相关资源
    最近更新 更多