在AWS API网关身体映射模板中将参数强制转换为整数

时间:2018-02-18 08:26:50

标签: amazon-dynamodb aws-api-gateway

我在集成请求中的Body Mapping模板中使用了一些算术:

#set($now = $context.requestTimeEpoch/1000)
#set($soon = $now + 600)
{
    "TableName": "events",
.... [ here get events between $now and $soon]
}

最近我需要通过参数传递偏移量:

#set($now = $context.requestTimeEpoch/1000)
#set($soon = $now + $input.params('offset'))
{
    "TableName": "events",
.... [ here get events between $now and $soon] ....
}

事实证明,如果$now1518939082,则查询参数?offset=600 $soon将为1518939082600 - 连接。我已经尝试了各种方法来强制将参数识别为整数,包括:

  1. #set($offset = $Integer.parseInt($input.params('offset')))
  2. #set($offset = 0 + $input.params('offset'))
  3. #set($offset = 1 * $input.params('offset'))
  4. 它们都不起作用。我在每次测试之前都插入了#set($offset = 0),所以我可以告诉“没有任何反应”来自“一个虚无返回”。

    1. 在第一种情况下,$ offset打印一个空字符串,不是0 。 (这也发生在$Integer.parseInt("1")。)
    2. 在第二种情况下,$ offset打印串联“0”和字符串值“offset”。
    3. 在第三种情况下,$ offset打印一个0,就像整条线不存在一样。
    4. 他们都没有成功地将参数转换为整数。

      有没有办法将该参数用作整数?

0 个答案:

没有答案