ASTERIAのフローってどうやって動かすの?

前置きが長くなりました。
Hello World!」にロジックもなにもあったものじゃありませんけど、一応流れとしては

  1. 処理スタート
  2. Hello World!」という文字列を生成
  3. 生成した文字列を返して終了

となります。
なぜ文字列出力じゃなくて文字列を返すなのか?といいますとASTERIAは基本的に画面入出力の機能を持たないからです。その部分は他の何かの機能に頼らないといけません。たいていはIEとかですね。
(勿論、まったくないワケではないんですけど基本的には・・・ということです)


ここでもうひとつ大事なことを。


なんでIEに入力画面と出力画面をお願いするのかといいますと、ASTERIAがフローを起動する(というかフローの記述どおりに振舞う)トリガーはHTTPのリクエストだからなのです。ブラウザーもしくは他のアプリケーションでも構いませんが、とにかく「このURLの情報をおくれ」というHTTPのリクエストがないとASTERIAのフローは動きません。細かいことをいうと別の手段もありますけど、とにかく基本はHTTPリクエストです。
(JSPをご存知の方はイメージしやすいでしょうね)


ですから常にASTERIAのフローを作る際には、どうやってHTTPのリクエストをもらうか?を意識しておく必要があります。


以上の理由から、テストに関してはIEからHTTPのリクエストを発行して、そのレスポンスを受けてIEが結果を表示する・・・という流れが一番多いのです。ですから今回もIEから起動するという前提で説明しまっす。


これを踏まえますと先ほどのロジックの流れはこう補足できます。

  1. IEからフロー起動(HTTPリクエスト発行)
  2. 処理スタート
  3. Hello World!」という文字列を生成
  4. 生成した文字列を返して終了
  5. IEが返された文字列を出力


でもフローに記述する部分は2〜4までですね。1と5はIEのお仕事です。


で、この処理イメージをASTERIAコンポーネントに置き換えるんでしたね。
いきなり該当コンポーネントを書いてしまうと・・・

  1. Startコンポーネント
  2. Mapperコンポーネント
  3. EndResponseコンポーネント

となります。


攻略本ではMapperではなくFileGetを使ってますね。この違いはどうやって文字列を生成するか?という方法の違いです。攻略本はHTMLで文字列を生成しておきそれを読み込ませてIEに返してますね。ファイルを用意するのがメンドーなのでMapperで文字列を作ってしまう方法をここではご紹介。