AWS API网关的基于URI的版本控制

时间:2017-02-07 16:54:59

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

我很难理解AWS API Gateway如何让我组织我的API,以便版本化很简单。例如,假设我有一个简单的API用于从字典中获取单词,可选择通过查询参数过滤结果。我希望在以下网址上提供v1:

https://<my-domain>/v1/names?starts-with=<value>

但是,我最接近的API网关是

https://<my-domain>/names/v1?starts-with=<value>

......这是相当倒退的。

我在控制台中获得的是&#34; Names API&#34;使用&#34; v1&#34;支持GET方法的资源。我还有自定义域设置来映射&#34;名称&#34;的基本路径。 to&#34; Names API&#34;和阶段&#34;测试&#34;。基本路径必须是唯一的,因此放置&#34; v1&#34;只有短暂的胜利;一旦我创建了第二个API(例如Numbers API),它也会有一个v1,并且我无法创建第二个映射。

我现在非常感谢任何和所有的帮助。

1 个答案:

答案 0 :(得分:8)

不要在API中创建版本路径(/ v1)作为资源。相反,只需称呼API&#34; Names V1&#34;并开始创建资源(/ names)。当您想要进行重大更改并创建新版本的API时,我们建议您创建一个名为&#34; Names V2&#34;的全新API。再一次,只需创建没有版本路径的资源。

要将两个API组合在一起,您可以使用自定义域名。 API网关中的自定义域名包括完全限定的域名和基本路径。创建两个自定义域名:

  • myapi.com/v1 - &gt;指向Names V1 API的prod阶段
  • myapi.com/v2 - &gt;指向Names V2 API的prod阶段

通过这种方式,您可以在更改v2时保留错误修复v1并独立部署这两个API。自定义域名会将它们组合在一起,并使它们出现在同一个域(myapi.com/v2/names)下。

希望这有帮助。