API 网关和带有路径和正文参数的映射模板

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

有很多关于映射模板的问题,但我找不到问题的解决方案。

我有一个 api 端点路径 PUT /foo/bar/{clientNumber} ,主体是

{
    "progress": {
        "client": {
            "name": "client",
            "site": {
                "name": "site"
            }
        }
    }
}

我尝试了许多不同的解决方案,但不知怎的,我似乎没有得到正确的解决方案。我需要我的端点 lambda 从路径中获取 clientNumber 并从正文中获取进度对象。

目前我有这样的模板:

"clientNumber": $input.params('clientNumber'),
"progress" : $util.parseJson($input.body)

结果是:

Endpoint request body after transformations: 
{
    "clientNumber": "",
    "progress": "{progress={client={name=client, site={name=site}}}}"
}

如果需要考虑的话,我正在使用 CDK 来构建它。

aws-api-gateway aws-cdk vtl
1个回答
0
投票

长话短说,这是正确的映射模板。

#set($inputRoot = $input.path('$'))
{
  "clientNumber": "$input.params('clientNumber')",
  "progress": $input.json('progress')
}

您错过了最初的#set,并且语法对于您预期的结果来说不太正确。

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