如何将哈希查询参数传递到AWS API网关



我正在寻找这个问题的哈希等价物:如何将数组查询参数传递到AWS API网关?

基本上,我想设置如下所示的查询参数:example.com?color[background]=yellow&color[foreground]=black

当我尝试在API网关控制台中创建一个名为color[background]的查询参数时,我得到以下错误消息: Invalid mapping expression specified: Validation Result: warnings : [], errors : [Parameter name should be a non-empty alphanumeric string]

我还尝试设置了一个color查询参数,然后将各种"哈希"传递给它

  1. {"background" => 123, "foreground" => "abc"}和删除空格
  2. {"background" : 123, "foreground" : "abc"}与删除空格
  3. {background:123,foreground:abc}

它们都会产生一个请求,该请求是某种形式的example.com?color=%7Bbackground:123,foreground:abc%7D,我传递的哈希在=之后。

有什么想法吗?不管怎样,这对查询字符串参数来说是一种糟糕的做法吗?我应该坚持使用简单的params吗?

由于没有定义通过查询字符串传递复杂数据结构(如数组或映射)的标准,API网关不会尝试将查询字符串解释或解析为简单的键-值字符串对之外的任何内容。

如果您想传入和转换复杂类型,最好在POST或PUT请求的主体中进行,这样您就可以利用JSON和API网关强大的主体映射模板功能。

或者,如果您必须坚持使用查询字符串参数,那么您必须:

  1. 按照上面Michael-sqlbot的建议,将数据结构折叠为简单的键值对,或者
  2. 将原始查询字符串传递到后端lambda或http集成,在那里可以随心所欲地进行解析。有关如何做到这一点的更多详细信息,请参阅本文

相关内容

  • 没有找到相关文章

最新更新