この素晴らしいリソースは、https://forums.aws.amazon.com/thread.jspa?messageID=673012に続きましたが、データに空のフィールドがあると内部サーバーエラーが発生します。コントロール)。AWS Gateway + x-www-form-urlencodedの空白フィールドでの改行
が次に検索行き、キリスト教のE Willmanからこのより最近更新ライブラリを実装 - より簡潔であるにもかかわらずhttps://github.com/christianewillman/aws-api-gateway-bodyparser
私は空のフィールドを送信するとき、それはまだ(ポストマンを経て)失敗しています。それを稼働させるためのヒントは非常に高く評価されます!
ここで参照のためのマッピングテンプレートです:
## Parses x-www-urlencoded data to JSON for AWS' API Gateway
##
## Author: Christian E Willman <[email protected]>
#if ($context.httpMethod == "POST")
#set($requestBody = $input.path('$'))
#else
#set($requestBody = "")
#end
#set($keyValuePairs = $requestBody.split("&"))
#set($params = [])
## Filter empty key-value pairs
#foreach($kvp in $keyValuePairs)
#set($operands = $kvp.split("="))
#if($operands.size() == 1 || $operands.size() == 2)
#set($success = $params.add($operands))
#end
#end
{
## add in the API stage data
"stage": "$context.stage",
#foreach($param in $params)
#set($key = $util.urlDecode($param[0]))
#if($param.size() > 1)
#set($value = $util.urlDecode($param[1]))
#else
#set($value = "")
#end
"$key": "$value"#if($foreach.hasNext),#end
#end
}
編集:
WSO_SIGNATURE=1d9ce78c2778ecf795a93009a09f8102dd4ef38a&WP_BUYER_NAME=Neil+calabroso&WP_ITEM_NAME=Welcome+to+the+Vault&SHIPTONAME=Neil+calabroso&WSO_PRODUCT_ID=wp_product_3&WP_AFFID=&WSO_SALE_CURRENCY=USD&EMAIL=nn%2Bpaypal%40freelancer.com&WP_ITEM_NUMBER=wp_product_3&PAYMENTSTATUS=COMPLETED&WP_BUYER_EMAIL=nn%2Bpaypal%40freelancer.com&WSO_PRODUCT_NAME=Welcome+to+the+Vault&WP_SALEID=wp_sale_3&AMT=43&WSO_CUSTOMER_EMAIL=nn%2Bpaypal%40freelancer.com&WSO_SALE_ACTION=SALE&WP_SALE_AMOUNT=43&WSO_TXN_ID=35&saleid=wp_sale_3&WSO_AFF_AMOUNT=0.00&WP_ACTION=sale&WSO_IPN_VERSION=1&WP_TXNID=35&WSO_SALE_ID=wp_sale_3&payer_email=nn%2Bpaypal%40freelancer.com&WP_SALE_CURRENCY=USD&WSO_SALE_AMOUNT=43&WSO_AFF_EMAIL=&TRANSACTIONID=35&WSO_CUSTOMER_NAME=Neil+calabroso
予想される出力はJSONのキーと値のペアのシリーズです:これは私がに送信していたデータであります
{
"WSO_SIGNATURE": "1d9ce78c2778ecf795a93009a09f8102dd4ef38a",
"WP_BUYER_NAME": "Neil calabroso",
"WP_ITEM_NAME": "Welcome to the Vault",
"SHIPTONAME": "Neil calabroso",
"WSO_PRODUCT_ID": "wp_product_3",
"WP_AFFID": "",
"WSO_SALE_CURRENCY": "USD",
"EMAIL": "[email protected]",
"WP_ITEM_NUMBER": "wp_product_3",
"PAYMENTSTATUS": "COMPLETED",
"WP_BUYER_EMAIL": "[email protected]",
"WSO_PRODUCT_NAME": "Welcome to the Vault",
"WP_SALEID": "wp_sale_3",
"AMT": "43",
"WSO_CUSTOMER_EMAIL": "[email protected]",
"WSO_SALE_ACTION": "SALE",
"WP_SALE_AMOUNT": "43",
"WSO_TXN_ID": "35",
"saleid": "wp_sale_3",
"WSO_AFF_AMOUNT": "0.00",
"WP_ACTION": "sale",
"WSO_IPN_VERSION": "1",
"WP_TXNID": "35",
"WSO_SALE_ID": "wp_sale_3",
"payer_email": "[email protected]",
"WP_SALE_CURRENCY": "USD",
"WSO_SALE_AMOUNT": "43",
"WSO_AFF_EMAIL": "",
"TRANSACTIONID": "35",
"WSO_CUSTOMER_NAME": "Neil calabroso"
}
入力と予想される出力を含めてもよろしいですか? –
こんにちは@私は入力と予想される出力を追加しました。コメントしてくれてありがとう。 –