将列表对象映射到AWS API网关的正确方法是什么?



我的映射模板是:

{ 
    "TableName": "Lists",
    "Item": {
    "listid": {
            "S": "$context.requestId"
            },
        "title": {
            "S": "$input.path('$.title')"
            },
        "places": {
            "L": $input.path('$.places')
        }
    }
}

我遇到的错误是:

{"__type": "com.amazon.coral.service#SerializationException",
      "Message": "Expected null"}

如果我将对象更改为" S"并传递到字符串中,则一切都很好,但是我无法正确通过列表。

这是我对API网关控制台的测试请求主体:

{
  "title": "Title",
  "places": ["place 1", "place 2"]
}

这是转换后的请求:

Endpoint request body after transformations: { 
"TableName": "Lists",
"Item": {
"listid": {
        "S": "test-invoke-request"
        },
    "title": {
        "S": "Title"
        },
    "places": {
        "L": ["place 1","place 2"]
    }
}

}

我在这里找到了答案:http://docs.aws.amazon.com/amazondynamodb/latest/apireference/api_attributevalue.html

对于字符串列表,正确的属性值为" SS"。" L"保留用于属性值对象的列表。

因此,要使我的原始请求主体通过我必须重新格式化为:

    { "title": "Title2",
      "places": [{"S": "place 1"}, {"S": "place 2"}]
     }

相关内容

  • 没有找到相关文章

最新更新