■Bastub ver1.0.1 Bastub(バスタブ)は、Eclipse/上で動作するWebAPI用のStubアプリケーションです。 HTTPリクエストのURLに該当する場所にあるエクセルファイルからデータを抽出して あたかも実際のリクエストが行われたかのようにJSONを返します。 本アプリケーションは以下のような場合に有効です。 ・テスト用スタブだとJSONが固定で試験にならない。 ・テスト用スタブの可変データをJSONで作るのが面倒なとき。 ・試験環境にデータを投入したいが事情によりできない、あるいはさせてもらえない。 ・手順書やインストーラーの作成のために都合のいいデータを返させたい。 ■実行方法 以下の手順で起動します。 (EclipseでWEBアプリケーションを動かせる人なら特に説明は不要だと思いますが念のため。) 1. リポジトリをcloneまたはダウンロードして解凍します。 2. EclipseでJavaProjectを新規作成して下さい。 3. ビルドしてください。自動でビルドされない場合は、pom.xmlを選んで 右クリック→実行→Maven clean→Maven installを実行してください。 4. BastubApplication.javaを右クリック→実行→Java Applicationを選択 5. ブラウザで、 http://localhost:8086/example/example1.html http://localhost:8086/example/example2.html http://localhost:8086/example/example3.html http://localhost:8086/example/example4.html を実行して動作確認ください。 (ポート番号=8086(初期値)の場合) ■データのつくり方 ・JSONファイル、エクセルファイルとも、HTTPリクエストのパスの階層 に一致する場所にファイルを作成してください。 例:http://localhost:8086/example/sports/baseball/team ↓ [pagedata_root]/example/sports/baseball/team.json [pagedata_root]/example/sports/baseball/team.xls (※pagedata_rootは、application.propertiesで変更できます) ・JSONファイル、エクセルファイルはリクエストごとに作成が必要です。 ・JSONファイル、エクセルファイルは、_GET.json、_POST.jsonと書くことで HTTPメソッドごとに別の動作が可能です。(デフォルトでは共通です。) ・エクセルデータは、[data]シートにデータ、[filter]シートに条件を定義します。 ・[data]シートは、1行目に列名、2行目以降に返すデータを書いてください。 ・[filter]シートは、HTTPのリクエストで渡される値から取り出すものを設定します。 #dataシート列 判定条件 要求パラメータ LEAGUE = league と書いた場合、HTTPのリクエストが ?league=J01だったとき、 dataシートの列名がLEAGUEの中から値がJ01のものだけを返します。 JSONが配列の場合は条件に合うものすべて、配列でないときは合致するデータの先頭だけが返ります。 ・[filter]シートの判定条件は、"="のみです。不等号(<,>)や否定(!=)などは、将来対応予定です。 ・[filter]シートの条件はANDです。複数書いた場合は、全条件が合うものだけが返ります。 ただし、HTTPリクエストで条件に該当するキー値を渡していない場合は、判定対象外としているため その場合は条件が合致していなくても対象に含まれます。 ・JSONは、返ってきて欲しい形式のデータ1つ分を記述してください。 [team.json] [ { "ID": "${TEAM_ID}", "リーグ": "${LEAGUE}", "チーム名": "${TEAM_NAME}", "マスコット": "${}", "本拠地": "${HOME}" } ] JSONのKey-ValueでいうところのValue側を"${エクセルの列名}"と書くと、エクセルの値が入ります。 JSONのKey値がエクセルの列名と同じとき、"${}"のように列名を省略できます。 ※"マスコット"は、エクセルの列名(1行目。セルD1)と同じため省略表記が可能。