对接支付服务商:如何让AWS API Gateway保留查询参数顺序?
保留查询参数原始顺序的AWS API Gateway实现方案
可行方案如下:
非Lambda代理集成(自定义集成)
配置API Gateway的非代理集成,通过集成请求的映射模板直接获取原始查询参数字符串。可以使用$input.params().querystring或$input.url().queryString()提取完整的带顺序的查询串,再传递给Lambda或后端服务,避免API Gateway解析参数打乱顺序。API Gateway V2 HTTP API 自定义集成
若使用API Gateway V2的HTTP API,选择HTTP集成(而非Lambda代理),在集成设置中启用"传递所有请求参数",或自定义映射规则保留原始查询串的顺序,直接把带顺序的参数传递到后端。CloudFront + Lambda@Edge 预处理
在API Gateway前置CloudFront,利用Lambda@Edge的Viewer Request触发器,从原始请求中提取完整的带顺序的查询字符串,将其作为自定义请求头或参数传递给API Gateway,后续由API Gateway转发给后端处理。
AWS官方文档说明:在Lambda代理集成中,当客户端提交API请求时,API Gateway会将事件对象传递给集成的Lambda函数,但不会保留请求参数的顺序。
内容的提问来源于stack exchange,提问作者davidjons
相关产品推荐
相关产品推荐

