29
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

API GatewayのMapping Templateの記法

Posted at

はじめに

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文による条件分岐も可能です。条件式は=='や<といった記号のほか、eqne`といった文字列の比較演算子も使えます。

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
29
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?