はじめに
API GatewayのMapping Templateは非常に強力なツールですが、その活用方法についてはまとまった資料が無いので以下に整理しました。
Apache VTL
Mapping Templateの記法はApacheのVelocity Template Languageが用いられています。これ、Apacheのヘビーユーザーには慣れた言語かもしれませんが、僕のようなアプリケーションエンジニアには馴染みのないものでした。しかし、こAPI GatewayをHTMLのテンプレートエンジンとして活用してみようという僕の思惑にぴったりと当てはまるものだったので、きちんと把握するためにも以下に主な記法をリストアップしました。
変数の宣言と代入
#set($var = $foo)
もちろん、$var = $foo -1
のような計算や、$var = 'hoge'
のようなラテラル文字列の代入も可能です。
If文
#if($var == $foo)
...
#elseif($var < $foo)
...
#else
...
#end
If文による条件分岐も可能です。条件式は=='や
<といった記号のほか、
eqや
ne`といった文字列の比較演算子も使えます。
Foreach文
#foreach($var in $foo.ist)
...
#break
#end
Foreach文で配列を処理することも出来ます。Tableも簡単に作れますね。#break
でループを中断させることも可能です。
Stop文
...
#stop
...
ここで出力を中断できます。あまり用途は思い浮かびませんが、途中で出力を止められます。
コメント
## This is a single line comment.
#*
This is a multi line comment.
*#
ここで出力を中断できます。あまり用途は思い浮かびませんが、途中で出力を止められます。
使えなさそうなものたち
Apache VTLに定義されているものでも、以下のディレクティブは利用できなさそうです。このうち、#include
と`#parse"は利用するとエラーになりました。
#include(arg [arg2...argn])
#parse(arg)
#evaluate