如何为AWS网关API配置以字符串作为输入的主体映射模板

时间:2017-11-26 04:47:24

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

我使用AWS API网关创建了一个post rest API。其余的API将在dynamoDB表中添加数据"元数据"它有四列。

其余API的输入是一个字符串,如" 2 -164 4104 1.50",其中每个空格分隔的值属于"元数据"表列按顺序排列。

我无法弄清楚如何配置Body Mapping Templates,它可以解析输入字符串并按顺序将其映射到表格列。

所需输出如下图所示:    https://i.stack.imgur.com/d2fpF.png

我试图拆分字符串,拆分很好。但是我得到了响应   " __ type":" com.amazon.coral.service#SerializationException"

我的映射是content-type:application / json:

 #set($rawAPIData=$inout.path('$'))
    #set($s=$rawAPIData.split(""))
    "TableName": "Metadata",
    "Item": {
    "id": {
            "S": "$s.get(0)"
    },
    "cap": {
            "S": "$s.get(1)"
    },
    "counter": {
            "S": "$s.get(2)"
    },
    "timer": {
            "S": "$s.get(3)"
    }
    }

输出日志: 转换后的端点请求体:

" TableName":"元数据", " Item":{     " id":{         " S":" 2" }, " cap":{         " S":" -164" }, " counter":{         " S":" 4104" }, "计时器":{         " S":" 1.50" } }

端点响应标头:{Server = Server,Connection = keep-alive,x-amzn-RequestId = J89RJ8GPC2D95GT0AP284PQSPBVV4KQNSO5AEMVJF66Q9ASUAAJG,x-amz-crc32 = 3948637019,Content-Length = 60,Date = Sun,26 Nov 2017 07:08 :49 GMT,Content-Type = application / x-amz-json-1.0} 转换后的方法响应体:{" __ type":" com.amazon.coral.service#SerializationException"}

似乎问题在于将application / json用作内容类型并将输入作为字符串提供。我该如何解决这个用例? 非常感谢帮助。

0 个答案:

没有答案