我正在努力理解 AWS API Gateway 如何让我组织我的 API,以便版本控制很简单。例如,假设我有一个用于从字典中获取单词的简单 API,可以选择通过查询参数过滤结果。我希望在以下位置提供 v1:
https://<my-domain>/v1/names?starts-with=<value>
但是,我能得到的最接近 API Gateway 是在
https://<my-domain>/names/v1?starts-with=<value>
...这是相当倒退。
我在控制台中得到的是带有支持 GET 方法的“v1”资源的“Names API”。我也有我的自定义域设置来将“名称”的基本路径映射到“名称 API”和阶段“测试”。基本路径必须是唯一的,因此放置“v1”只会获得短期胜利;一旦我创建了我的第二个 API(例如 Numbers API),它也会有一个 v1,我将无法创建第二个映射。
非常感谢任何和所有帮助,因为我现在没有想法。
最佳答案
不要将版本路径 (/v1) 创建为 API 中的资源。相反,只需调用 API“Names V1”并开始创建资源 (/names)。当您想要进行重大更改并创建 API 的新版本时,我们建议您创建一个名为“Names V2”的全新 API。再一次,只需创建没有版本路径的资源。
要将这两个 API 结合在一起,您可以使用自定义域名。 API Gateway 中的自定义域名包括完全限定域名和基本路径。创建两个自定义域名:
通过这种方式,您可以在对 v2 进行更改的同时继续修复错误 v1,并独立部署这两个 API。自定义域名会将它们组合在一起并使它们出现在同一域 (myapi.com/v2/names) 下。
希望这可以帮助。
关于api - AWS API Gateway 基于 URI 的版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42095592/