URLDispatcherでファイルを1つ使う

APIを作成する

2つの都市の間の距離を返すAPIFunctionを作成する:

Webフォームのインターフェースを作成する

APIのパラメータにFormFunctionを適用して,フォームを構築する:

  • FormFunctionAPIFunctionは同じ署名を持つので,片方のコンテンツをもう片方に使うことができる.

アプリのエンドポイントを作成する

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を作成する:

Webフォームのインターフェースを作成する

APIのパラメータにFormFunctionを適用して,フォームを構築する:

  • FormFunctionAPIFunctionは同じ署名を持つので,片方のコンテンツをもう片方に使うことができる.

ディレクトリを作成する

アプリケーションのファイルを保存するディレクトリを作成する:

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」のハイパーリンクをクリックすると,適切なエンドポイントに飛ぶ:

アプリケーションを使う

ベルリンとパリの間の距離を求める: