无法在API网关中映射数字列表

时间:2017-04-28 02:17:03

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

如何为API网关中的数字列表对象创建映射?我正在尝试使用 POST 请求发布整数列表。我尝试使用 NS 属性,但得到了错误。

错误:

{
  "__type": "com.amazon.coral.service#SerializationException"
}

但是,当我有 N 属性并发布一个整数值时,它运行良好。

JSON input

Mapping template

有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我相信您正在尝试将请求有效负载映射到DynamoDB JSON字符串。您可以应用像这样的速度模板,

{
    "TableName":"ABC",
    "Item": {
        "id": {
            "S": "$context.requestId"
        },
        "name": {
            "S": "$input.path('$.name')"
        },
        "price": {
            "L": [
                #set($prices=$input.path('$.price'))
                #foreach($p in $prices)
                {
                    "N": "$p"
                }#if ($velocityCount < $prices.size()), #end
                #end
            ]
        }
    }
}

方法请求正文:

{
    "name":"Test",
    "price": [1, 2, 3]
}

端点请求正文:

    {
    "TableName": "ABC",
    "Item": {
        "id": {
            "S": "test-invoke-request"
        },
        "name": {
            "S": "Test"
        },
        "price": {
            "L": [
                {
                    "N": "1"
                },
                {
                    "N": "2"
                },
                {
                    "N": "3"
                }
            ]
        }
    }
}