用于复合 API 调用的 Spring Cloud Gateway?

Posted

技术标签:

【中文标题】用于复合 API 调用的 Spring Cloud Gateway?【英文标题】:Spring Cloud Gateway for composite API calls? 【发布时间】:2019-08-29 15:49:16 【问题描述】:

我开始构建一个微服务 API 网关,我正在考虑使用 Spring Cloud 来帮助我进行路由。但是对网关 API 的某些调用将需要对不同服务的多个请求。

假设我有 2 项服务:订单详情服务送货服务。我想要一个网关端点 GET /orders/orderId 调用 Order Details 服务,然后调用 Delivery Service 并将两者结合起来以返回完整的订单详细信息和交货。这可以通过 Spring Cloud 的路由实现,还是我应该使用 RestTemplate 之类的东西手动进行调用?

【问题讨论】:

【参考方案1】:

在 GitHub 上向have routes support multiple URIs 发布了一项改进建议。到目前为止,还没有任何计划来实现这一点,至少不是according to one of the contributors。

【讨论】:

那么,你的意思是,现在还不能做我想做的事,我应该坚持使用这些复合端点的标准控制器吗?使用休息模板是最佳实践吗?(所有微服务都是休息) 我刚刚发现了 ProxyExchange,它可以达到这个目的,而不是依赖于 RestTemplate。 cloud.spring.io/spring-cloud-gateway/multi/… @D.Tomov 太好了!这也是他们在我的答案中链接的问题中也建议使用的内容。 @D.Tomov 你能告诉我你是怎么做的吗?

以上是关于用于复合 API 调用的 Spring Cloud Gateway?的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 API Gateway Spring Cloud 调用实际服务

spring cloud深入学习-----服务网关zuul

如何将 Spring Cloud Config 与 Git 和 Vault 复合环境存储库一起使用?

Spring Cloud中优雅的使用Feign调用接口

Spring Cloud调用接口过程

开启springcloud全家桶4:极简API调用方式 Spring Cloud Feign 总结