我通过AWS API Gateway公开我的DDB。我有它工作,但当我通过我的“PUT”时,它要求我在身体请求中包含我的DDB中的每个字段。有些客户可能只想在我的DDB中POST 10个10个字段。这可以作为POST或PATCH完成吗?如果是这样,我的映射模板对于这些是什么样的?
第二:我想为DDB中的每个条目添加一个自动生成的order_number。所以现在每个PUT或POST都有一个唯一的order_number。因此,我的主键将是一个变量,辅助键将是客户sku编号,反之亦然。
感谢您的帮助。
答案 0 :(得分:0)
正文模板:我仍然需要它来生成" order_number" 自动为每个新条目。
#set($inputSep = $input.path('$'))
#set($thisLoop =
'{"CustomerNm":"1","ShipDate":"2","Shipping":"3","commentId":"4"}')
#set($myPlaces = $util.parseJson($thisLoop))
#set($allKeys = '')
#set($myVals = '"')
{
"TableName": "BRPI",
"Key": {
"CustomerID": {
"S": "$input.path('$.CustomerID')"
}
},
#foreach($type in $inputSep.keySet())
#if($type == "CustomerID")
#else
#set($thisPlace = $myPlaces.get($type))
#set($params = $inputSep.get($type))
#set($thisKey = "$type" + " = :val" + "$thisPlace")
#set($thisPath = "$params")
#if($foreach.hasNext)
#set($myComma = ",")
#set($myReturn = '"')
#else
#set($myComma = "")
#set($myReturn = "")
#end
#set($allKeys = "$allKeys" + "$thisKey" + "$myComma")
#set($myVals = "$myVals" + ":val" + "$thisPlace" + '": {"S": "' +
"$thisPath" + '"}' + "$myComma" + "$myReturn")
#end
#end
"UpdateExpression": "SET $allKeys",
"ExpressionAttributeValues": {
$myVals
},
"ReturnValues":"UPDATED_NEW"
}