ASTERIA

HTTPStartでデータを受け取る

はじめに

HTTPからリクエストを受け取る場合にはHTTPStartコンポーネントが使えます。ヘルプをみるとブラウザのフォームリクエスト(POSTメソッド)をメインに書かれていますが、GETメソッドでURLパラメーターをとるときの設定で少し悩んだので確認したことを残しておきます。

環境

  • OS : Windows 10
  • Java:1.8.0.121
  • ASTERIA WARP : 1703

フロー

HTTPStart -> Mapper -> HTTPEnd で簡単なフローを作って
HTTPStart01.png

URL実行設定しておきます。
HTTPStart02.png

POSTでフォームデータを受け取る

今回はRestコンポーネントにPrameterListのデータを差し込んで動作を確認してみました。
HTTPStart03.png

フローの実行結果
HTTPStart04.png

フォームデータをHTTPStartのPrameterListで受け取っているようです。

GETでURLパラメーターを受け取る

こっちもひとまずRestコンポーネントで試してみました。
HTTPStart05.png

URLパラメータータブでvalue1に値をセットしておきます。
HTTPStart06.png

フローの実行結果
HTTPStart07.png

URLパラメーターもさっきと同じフローで取得できてます。

ヘルプを見直してみる

(HTTPStartコンポーネントのヘルプより)

出力ストリームがParameterListの場合はURLパラメーターもParameterListのフィールドに設定されます。

と書いてありました。つまり、POSTメソッドでフォームデータを受け取るのと同じようにGETメソッドのURLパラメーターもPrameterListで受け取れるようです。

ブラウザからも試してみました。
HTTPStart08.png

?value1=123というURLパラメーターをフローで受け取れて処理されているようです。

さらにヘルプには

出力ストリームがMIMEでURLパラメーターを取得する場合
出力ストリームがMIMEの場合にURLでQueryStringとして指定されたパラメーターを取得する場合はそのパラメーター名を公開フロー変数として設定することで変数値として設定されます。

とも書いてありましたので試してみました。
HTTPStartの出力ストリームをMIMEにしてフロー変数を1つ作り、「公開」しておくと同じようにGETメソッドのURLパラメーターが取れるみたいです。
HTTPStart09.png

おわりに

GETメソッドのURLパラメーターを受け取るときもURLを解析するとか小難しいことは考えず、ParameterListでフィールドを指定して受け取れるようです。GETメソッドでもPOSTメソッドでも同じフローで動くのがうれしいところです。
ヘルプにはちっちゃくさらっと書いてありますがMIMEの場合も公開フロー変数に自動セットされるので、MIMEデータ解析と同時にURLパラメーターの値も必要なときでも使えそうです。