Main Content

RESTful API、JSON、および JavaScript を使用した Web ベース ツールの作成

この例では、単純な式から債権の価格を計算する Web アプリケーションを作成する方法を説明します。MATLAB® Production Server™ RESTful API および MATLAB データ型の JSON 表現 を使用して、MATLAB Production Server を使用したエンドツーエンドのワークフローを示しています。次の既知の値を Web インターフェイスに入力して、この例を実行します。

  • 額面価格 (または満期時の債権価格) — M

  • 利払い — C

  • 支払い回数 — N

  • 金利 — i

アプリケーションは、次の方程式に基づいて価格 (P) を計算します。

P = C * ( (1 - (1 + i)^-N) / i ) + M * (1 + i)^-N
異なる債権に価格を設定するには、Web アプリケーションでスライダーを使用します。

手順 1: MATLAB コードの記述

MATLAB で以下のコードを記述し、債権に価格を設定します。ファイル名 pricecalc.m を使用してコードを保存します。

function price = pricecalc(face_value, coupon_payment,...
                           interest_rate, num_payments)
    M = face_value;
    C = coupon_payment;
    N = num_payments;
    i = interest_rate;
    
    price = C * ( (1 - (1 + i)^-N) / i ) + M * (1 + i)^-N;

手順 2: Production Server コンパイラ アプリを使用したデプロイ可能なアーカイブの作成

この例のために、デプロイ可能なアーカイブを作成するには、次のようにします。

  1. [アプリ] タブで、[Production Server コンパイラ] アプリを選択します。

  2. [アプリケーション タイプ] リストで、[デプロイ可能なアーカイブ] を選択します。

  3. [エクスポートする関数] フィールドで、pricecalc.m を追加します。

  4. [アーカイブ情報] の下で、pricecalcBondTools に変更します。

  5. [パッケージ化] をクリックします。

生成されたデプロイ可能なアーカイブ BondTools.ctf は、プロジェクトの for_redistribution フォルダーにあります。

手順 3: デプロイ可能なアーカイブのサーバーへの配置

  1. 必要に応じて、https://www.mathworks.com/products/compiler/mcrMATLAB Runtime をダウンロードします。詳細については、MATLAB Production Server でサポートされる MATLAB Runtime バージョンを参照してください。

  2. mps-new を使用してサーバーを作成します。詳細については、コマンド ラインを使用したサーバー インスタンスの作成を参照してください。サーバー環境をまだセットアップしていない場合、詳細については、mps-setupを参照してください。

  3. まだ行っていない場合、サーバー構成ファイル main_config を編集して --mcr-root のパスを指定することで、MATLAB Runtime の場所をサーバーに指定します。詳細については、Server Configuration Properties を参照してください。

  4. mps-start を使用してサーバーを起動し、mps-status を使用してサーバーが実行されていることを確認します。

  5. BondTools.ctf ファイルを、ホスト用のサーバー上の auto_deploy フォルダーにコピーします。

手順 4: サーバーでのオリジン間リソース共有 (CORS) の有効化

サーバー構成ファイル main_config を編集して、サーバーに対してリクエストを行うことができるドメイン オリジンのリストを指定することで、オリジン間リソース共有 (CORS) を有効にします。たとえば、cors-allowed-origins オプションを --cors-allowed-origins * に設定すると、任意のドメインからのリクエストがサーバーにアクセスできるようになります。詳細については、cors-allowed-originsおよびServer Configuration Propertiesを参照してください。

手順 5: RESTful API および JSON を使用した JavaScript コードの記述

RESTful API および MATLAB データ型の JSON 表現をガイドとして使用して、次の JavaScript® コードを記述します。このコードを calculatePrice.js という名前の JavaScript ファイルとして保存します。

コード:

 calculatePrice.js

手順 6: HTML コード内への JavaScript の組み込み

次の構文を使用して、前の手順の JavaScript を以下の HTML コード内に組み込みます。

<script src="calculatePrice.js" type="text/javascript"></script>

このコードを bptool.html という名前の HTML ファイルとして保存します。

コード:

 bptool.html

手順 7: 例の実行

デプロイされた MATLAB 関数をもつサーバーが実行されていることを確認します。Web ブラウザーで、HTML ファイル bptool.html を開きます。値がまだ入力されていないため、既定の債券価格は NaN です。以下の値を試して債権に価格を設定します。

  • 額面価格 = $1000

  • 利払い = $100

  • 支払い回数 = 5

  • 金利 = 0.08 (8% に相当)

結果として生じる債券価格は $1079.85 です。

異なる債権に価格を設定するには、ツールのスライダーを使用します。金利を変化させると、債権の価格が最も劇的に変化します。

View of the bond pricing tool. There are fields that contain values for a bond at maturity, coupon payment, number of payments, interest rate, and the calculated bond price. The bottom section displays HTTP status codes, messages, and payloads for the HTTP request and response.

関連するトピック