在正文映射模板、AWS API Gateway 中将参数强制转换为整数

Tan*_*n六四 6 amazon-dynamodb aws-api-gateway

我在集成请求的身体映射模板中使用了一些算术:

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

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

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

事实证明, if $now is 1518939082,与查询参数?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'))

它们都不起作用。我#set($offset = 0)在每次测试之前插入,这样我就可以区分“什么也没发生”和“什么也没有返回”。

  1. 在第一种情况下, $offset 打印一个空字符串,而不是 0。(这种情况也会发生$Integer.parseInt("1")。)
  2. 在第二种情况下,$offset 打印“0”和“offset”字符串值的串联。
  3. 在第三种情况下,$offset 打印 0,就好像整行不存在一样。

他们都没有成功地将参数转换为整数。

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