【问题标题】:How to merge multiple micro-services behind single API Gateway?如何在单个 API 网关后面合并多个微服务?
【发布时间】:2018-08-16 08:54:42
【问题描述】:

我有两个微服务,一个地址是 domainOne.com,另一个是 domainTwo.com
我也为这些 API 创建了 swagger 定义。
我想让用户访问我的两个 API,但要通过一个端点。
但是,在导入 swagger 文件时,我只有两个选项,要么覆盖现有的一个,要么合并两个 swagger 文件。第二个选项更有吸引力,但它们都不能满足我的要求,因为我必须为新导入的 API 手动添加端点。 (AWS 弄乱了第二个导入的 API,我必须手动修改每个 API 端点)。
第二种选择是两个创建两个 API,但随后出现的问题是两者都有不同的端点,我再次被困在第 1 点。
我希望 Amazon API Gateway 为最终用户提供一个端点,并允许导入多个 swagger 文件。
我看过很多教程,但找不到解决方案。

附注: 实际上,我在 Azure 和 Azures API 管理上做了一个客户项目,可以轻松地将多个 API 合并到一个 API 管理实例后面。
现在我当前的项目有 AWS 堆栈,我想在 AWS API Gateway 中实现类似的东西。
我怎样才能实现它?

【问题讨论】:

  • 为什么不简单地将两个 swagger 模板合并为一个,然后再将其导入 API Gateway?
  • @Dunedan,感谢您的反馈。问题是两个 API 的 host 并不相同。从技术上讲,一个 swagger 文件将只有一个 主机

标签: amazon-web-services aws-api-gateway


【解决方案1】:

实际上使用Custom Domain Name 很容易实现。

您应该创建 2 个 API,不管它们是由 Lambda、EC2 还是 ECS/Fargate 支持。

然后您创建一个自定义域,例如:api.domain.com 并映射每个路由,例如:

  • api.domain.com/login -> api1/login
  • api.domain.com/user -> api1/user
  • api.domain.com/search -> api2/search
  • api.domain.com/order -> api2/order

您也可以查看post

【讨论】:

    猜你喜欢
    • 2019-09-12
    • 2020-04-04
    • 2020-10-12
    • 2017-11-22
    • 2020-03-15
    • 2019-02-27
    • 2020-02-29
    • 2021-05-18
    • 2019-04-06
    相关资源
    最近更新 更多