阻止AWS API Gateway重新排序URL参数?

时间:2016-09-23 16:30:57

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

我正在尝试将现有API移植到AWS API Gateway。

我已经完成了所有工作,因为使用每个端点的“测试”GUI成功点击我配置的EC2实例。

我使用了swagger导入工具来自动映射所有可能的端点及其相关的URL参数。

我注意到,当请求到达我的API(EC2实例)时,URL已经略有转换。 URL参数顺序已更改。

无论我粘贴到测试GUI中的参数顺序如何,参数在我的API中的顺序都已更改为在“方法请求”GUI屏幕中指定的顺序。

有谁知道如何防止这种情况发生?

1 个答案:

答案 0 :(得分:0)

使用lambda'自定义授权者'

无法实现此目的

我试图将Lambda函数用作自定义授权者,然后代理到我们的HTTP API。自定义授权人可用的唯一数据是“令牌”。在标题中(可以命名任何你想要的东西 - 通过API网关GUI设置)。你当然可以用你想要的任何值填充它,一个建议是将param顺序放在这个标题中,然后在这个lambda级别执行一些逻辑,但这意味着修改我们的API调用者并不是理想的。

您可以访问“已转换的”'网址(例如' https://df64sxl1.execute-api.us-east-2.amazonaws.com/prod/myEndpoint)但这并非常有用。

如果您能够利用lambda集成(而不是自定义授权),您可以使用payload-template mappings来实现这一点,因为这些提供了一种访问原始请求的方法。