ASTERIAのフローってどうやって動かすの?
前置きが長くなりました。
「Hello World!」にロジックもなにもあったものじゃありませんけど、一応流れとしては
- 処理スタート
- 「Hello World!」という文字列を生成
- 生成した文字列を返して終了
となります。
なぜ文字列出力じゃなくて文字列を返すなのか?といいますとASTERIAは基本的に画面入出力の機能を持たないからです。その部分は他の何かの機能に頼らないといけません。たいていはIEとかですね。
(勿論、まったくないワケではないんですけど基本的には・・・ということです)
ここでもうひとつ大事なことを。
なんでIEに入力画面と出力画面をお願いするのかといいますと、ASTERIAがフローを起動する(というかフローの記述どおりに振舞う)トリガーはHTTPのリクエストだからなのです。ブラウザーもしくは他のアプリケーションでも構いませんが、とにかく「このURLの情報をおくれ」というHTTPのリクエストがないとASTERIAのフローは動きません。細かいことをいうと別の手段もありますけど、とにかく基本はHTTPリクエストです。
(JSPをご存知の方はイメージしやすいでしょうね)
ですから常にASTERIAのフローを作る際には、どうやってHTTPのリクエストをもらうか?を意識しておく必要があります。
以上の理由から、テストに関してはIEからHTTPのリクエストを発行して、そのレスポンスを受けてIEが結果を表示する・・・という流れが一番多いのです。ですから今回もIEから起動するという前提で説明しまっす。
これを踏まえますと先ほどのロジックの流れはこう補足できます。
- IEからフロー起動(HTTPリクエスト発行)
- 処理スタート
- 「Hello World!」という文字列を生成
- 生成した文字列を返して終了
- IEが返された文字列を出力
でもフローに記述する部分は2〜4までですね。1と5はIEのお仕事です。
で、この処理イメージをASTERIAのコンポーネントに置き換えるんでしたね。
いきなり該当コンポーネントを書いてしまうと・・・
となります。
攻略本ではMapperではなくFileGetを使ってますね。この違いはどうやって文字列を生成するか?という方法の違いです。攻略本はHTMLで文字列を生成しておきそれを読み込ませてIEに返してますね。ファイルを用意するのがメンドーなのでMapperで文字列を作ってしまう方法をここではご紹介。