如何在单个API网关后面合并多个微服务?

时间:2018-08-15 19:09:14

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

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

P.S: 实际上,我在Azure和Azures API Management上进行了一个客户项目,轻松地允许在一个API管理实例后面合并多个API。
现在我当前的项目具有AWS堆栈,并且我想在AWS API Gateway中实现类似的功能。
我该如何实现?

1 个答案:

答案 0 :(得分:1)

实际上,使用Custom Domain Name可以很容易地完成它。

您应该创建2个API,无论它们是否由Lambda,EC2或ECS / Fargate支持。

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

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

您也可以选中此post