我由邮递员将参数发送到api网关并接收结果。 因此,我尝试使用lambda中的简单示例,
exports.handler = (event, context, callback) => {
// TODO implement
const Idx = event.Idx * 2;
callback(null, Idx);
};
当我发送IDx时,它回调它的两倍。
我在Body中选择raw,然后可以接收结果
但是,我在标头部分中输入了“ Content-Type”:“ application / x-www-form-urlencoded”,选择了x-www-form-urlencoded,它会返回此值。
{"message": "Could not parse request body into json: Unrecognized token \'Idx\': was expecting \'null\', \'true\', \'false\' or NaN\n at [Source: [B@331a45ec; line: 1, column: 5]"}
我想通过x-www-formurlencoded从邮递员那里接收数据。
我该怎么做?
如果知道的话,请帮助我。
答案 0 :(得分:0)
API网关期望使用JSON,但是您要为其提供经过urlencoded的表单数据(即字符串)。您需要在API网关配置中添加映射模板:
{
"data": {
#foreach( $token in $input.path('$').split('&') )
#set( $keyVal = $token.split('=') )
#set( $keyValSize = $keyVal.size() )
#if( $keyValSize >= 1 )
#set( $key = $util.urlDecode($keyVal[0]) )
#if( $keyValSize >= 2 )
#set( $val = $util.urlDecode($keyVal[1]) )
#else
#set( $val = '' )
#end
"$key": "$val"#if($foreach.hasNext),#end
#end
#end
}
}