过滤查询参数中的键并且aws网关中存在解析错误

问题描述 投票:0回答:1

我正在使用无服务器框架,最近从 lambda 代理集成更改为 lambda 集成。现在我有一个在查询参数中使用过滤器的端点。这是我用来映射查询字符串的请求模板,

"queryStringParameters": {
  #foreach($query in $request_query.keySet())
        "$query" : "$util.escapeJavaScript($request_query.get($query))"
        #if($foreach.hasNext),#end
        #end
      }

这是终点:

https://example.com/ds/districts?page=1&pagesize=12&filtercriteria=name~%27John%27

但是当我调用此端点时,我收到错误

Could not parse request body into json: Could not parse payload into json: Unrecognized character escape \'\'\' (code 39)\n at [Source: (byte[])\"

这些是我引用的文档,

https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#util-template-reference

https://www.serverless.com/framework/docs/providers/aws/events/apigateway#lambda-integration

非常感谢任何帮助或建议,谢谢

amazon-web-services aws-lambda aws-api-gateway serverless serverless-framework
1个回答
0
投票

根据文档

$util.urlDecode()
并将每个查询元素传递到此解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.