API GatewayにPOST/PUTされてきたJSONのBody($input
)を、マッピングテンプレートで中身を少しだけ書き換えてバックエンドへProxyしたい時:
#set($body = $input.path('$'))
#set($body.url = "https://example.tld/thingy/$body.id")
$input.json('$')
これだけでurl
属性が#set
で指定したURLに置き換わった状態のJSON文字列が生成される。
#set
での属性置き換え後、最後にJSON文字列化する部分が$body.json('$')
では ない 点に注意。.json('$')
は$input
にしか定義されていない。
すべて参照渡しでまぁJavaScriptみたいなもんだよと言われれば、この使い方も、そんな気もしなくもないが、それにしても、
わかりにくすぎない!?
たったこれだけのことをするのに1日潰れてしまった……。
ref: