以下の内容はhttps://begirama.hatenablog.com/entry/2015/08/14/222637より取得しました。


Mule ESB 3.7 GETのQuery Parameterを解析してログに出すサンプル

'http://localhost:8082/4apppot/output_queries?name1=test1&name2=test2' こういうURLでアクセスしたときに、Query Parameterを解析するサンプルです。

"#[message.inboundProperties.'http.query.params'.name1]"というキーを指定して取得することもできますが、動的にQueryを解析したい場合には、固定のキーを書くことができないこともあると思います。

Muleアプリのサンプル

gist.github.com

実行時のログ

'http://localhost:8082/4apppot/output_queries?name1=test1&name2=test2'にアクセスしたときに、次のログが出力されました。1行が長くて見にくいので、大事なところだけ編集しています。

About to echo ParameterMap{[name1=[test1], name2=[test2]]}
payload(1): name2=test2
payload(1).key: name2
payload(1).value: test2
payload(2): name1=test1
payload(2).key: name1
payload(2).value: test1

サンプル解説

foreachでループ

Queryの数分ループします。 '#[counter]'で、ループの回数を取れます。0じゃ無くて、1からスタートするので注意!

entrySet()

このサンプルのポイントは、foreachのcollectionに指定している"#[message.inboundProperties.'http.query.params'.entrySet()]"

25行目で、#[message.inboundProperties.'http.query.params']の値をログに出していますが、その時の値は ParameterMap{[name1=[test1], name2=[test2]]}。つまりMapです。entrySet()を使うことで、payload変数にはKey、Valueのセットが入ります。

後はpayload.keyでQueryのKeyへ、payload.valueでQueryのValueへアクセスできます。




以上の内容はhttps://begirama.hatenablog.com/entry/2015/08/14/222637より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14