URLDispatcherでファイルを1つ使う
APIを作成する
2つの都市の間の距離を返すAPIFunctionを作成する:
- TravelDistanceが返すQuantityよりも,QuantityMagnitudeの方が外部プログラムにとっては理解しやすい.
Webフォームのインターフェースを作成する
APIのパラメータにFormFunctionを適用して,フォームを構築する:
- FormFunctionとAPIFunctionは同じ署名を持つので,片方のコンテンツをもう片方に使うことができる.
アプリのエンドポイントを作成する
URLDispatcherを使って,複数のエンドポイントを作成し,WebフォームかAPIに直接アクセスする:
アプリケーションのファイルをエキスポートする
アプリケーションのファイルを保存するディレクトリを作成する:
Exportを使って,コンテンツをdispatcher.wlという名前のファイルに書き込む:
アプリケーションをサーブする
ターミナルウィンドウを開き,アプリケーションのフォルダの場所まで進む:
$ cd ~/Desktop/city-distance-app
以下のコマンドを実行してアプリケーションをサーブする:
$ python -m wolframwebengine dispatcher.wl
----------------------------------------------------------------------
Address http://localhost:18000/
File path/city-distance-app/dispatcher.wl
----------------------------------------------------------------------
(Press CTRL+C to quit)
http://localhost:18000 に進み,「Use the Form」のハイパーリンクをクリックすると,適切なエンドポイントに飛ぶ:
アプリケーションを使う
ベルリンとパリの間の距離を求める:
ディレクトリレイアウト内の複数のファイルを使う
APIを作成する
2つの都市の間の距離を返すAPIFunctionを作成する:
- TravelDistanceが返すQuantityよりも,QuantityMagnitudeの方が外部プログラムにとっては理解しやすい.
Webフォームのインターフェースを作成する
APIのパラメータにFormFunctionを適用して,フォームを構築する:
- FormFunctionとAPIFunctionは同じ署名を持つので,片方のコンテンツをもう片方に使うことができる.
ディレクトリを作成する
アプリケーションのファイルを保存するディレクトリを作成する:
APIのサブディレクトリを作成する:
フォームのサブディレクトリを作成する:
アプリケーションのファイルをエキスポートする
Mapを使って,APIとフォームを含めたアプリケーションのファイルを適切な場所にバッチエキスポートする:
- .m,.mx,.wxf,.wlの拡張子を持つファイルはすべてGenerateHTTPResponseを使ってファイルのコンテンツについてカーネルで評価されるので,index.wlの式はDelayedで囲まなければならない.
- .m,.mx,.wxf,.wl以外の拡張子のファイルは,静的コンテンツとしてサーブされる.
アプリケーションをサーブする
ターミナルウィンドウを開き,アプリケーションのフォルダの場所に進む:
$ cd ~/Desktop/city-distance-app
以下のコマンドを実行し,アプリケーションをサーブする:
$ python -m wolframwebengine city-distance-app
----------------------------------------------------------------------
Address http://localhost:18000/
Folder path/city-distance-app
Index index.wl
----------------------------------------------------------------------
(Press CTRL+C to quit)
- ディスク上のディレクトリにリクエストパスが対応する場合には,サーバはそのディレクトリ内に index.wl という名前のファイルを探す.この慣例は --index オプションで変更することができる.
http://localhost:18000 に進み,「Use the Form」のハイパーリンクをクリックすると,適切なエンドポイントに飛ぶ:
アプリケーションを使う
ベルリンとパリの間の距離を求める: