記事
Mihoko Iijima · 2020年12月15日 2m read

IIS で REST を動かす場合の設定

これはInterSystems FAQ サイトの記事です。

REST のベース URL を /rest とした場合の IIS と Webゲートウェイの設定内容は以下の通りです。

 

IIS の設定内容

アプリケーション /rest を作成し、ハンドラーマッピングで * = CSPms を定義します。

ハンドラーマッピングの設定手順は以下の通りです。

IIS > Default Website > アプリケーション /rest > "ハンドラーマッピング" をダブルクリック > モジュールマップの追加

  • 要求パス :     *
  • モジュール:   CSPms
  • 名前   :   CSPGW    (任意の名前) 

要求の制限 > [要求のマップ先が次の場合のみハンドラーを呼び出す] のチェックはオフにします。
※こちらの設定はデフォルトでは「チェックあり」になっていますのでご注意ください。

この構成により、IIS は /rest アプリケーションを Web ゲートウェイに転送します。

 

 

Webゲートウェイの構成

Web Gateway のアプリケーションアクセス から /rest を追加します。
→既存アプリケーションをクリックしてコピーし、アプリケーションパスを /rest に設定しIRISサーバを指定します。

この構成により、Webゲートウェイは /rest アプリケーションをIRISサーバに転送します。

 

 

IRISサーバの構成

管理ポータルを開き、システム構成 > セキュリティ > アプリケーション > ウェブ・アプリケーション より /rest アプリケーションを追加します。

RESTディスパッチクラス名を「ディスパッチクラス」に指定します。

この構成により、IRIS は /rest アプリケーションを対象ネームスペースに転送し、対象ディスパッチクラスを呼び出します。

 

IIS経由でテスト

以下のURLで呼び出します。

http://localhost/rest/test

REST ディスパッチクラスが以下のようなサンプルコードだった場合

Class User.MyREST Extends %CSP.REST
{

XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]
{
<Routes>
<Route Url="/test" Method="GET" Call="test"/>
</Routes>
}
ClassMethod test() As %Status
{
 set %response.ContentType="application/json"
 set res={"abc":"123"}
 write res.%ToJSON()
 quit $$$OK
}
}

 

以下の結果が得られます。

00
1 0 0 11