API网关公开DynamoDB(需要复杂的映射模板或Lambda函数?)
我正在通过AWS API网关公开我的DDB。我让它工作,但当我通过我的“PUT”时,它要求我在body请求中包含DDB中的每个字段。有些客户可能只想在我的DDB中发布10个字段中的5个字段。这是作为帖子还是补丁来完成的?如果是这样的话,我的映射模板在这些方面是什么样子的 第二:我想在DDB中的每个条目中添加一个自动生成的订单号。因此,现在每个PUT或POST都将有一个唯一的订单号。因此,我的主键是一个变量,次键是一个客户sku号,反之亦然API网关公开DynamoDB(需要复杂的映射模板或Lambda函数?),api,amazon-web-services,gateway,Api,Amazon Web Services,Gateway,我正在通过AWS API网关公开我的DDB。我让它工作,但当我通过我的“PUT”时,它要求我在body请求中包含DDB中的每个字段。有些客户可能只想在我的DDB中发布10个字段中的5个字段。这是作为帖子还是补丁来完成的?如果是这样的话,我的映射模板在这些方面是什么样子的 第二:我想在DDB中的每个条目中添加一个自动生成的订单号。因此,现在每个PUT或POST都将有一个唯一的订单号。因此,我的主键是一个变量,次键是一个客户sku号,反之亦然 谢谢您的帮助。正文模板:我仍然需要它来生成“订单号” 为
谢谢您的帮助。正文模板:我仍然需要它来生成“订单号” 为每个新条目自动创建
#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"
}
正文模板:我仍然需要它来生成“订单号” 为每个新条目自动创建
#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"
}