この節では、REST パススルー・サービスと REST パススルー・オペレーションを追加します。このサービスは Web ポート上でリッスンして、HTTP REST メッセージをパススルー・オペレーションに送信します。パススルー・オペレーションは、HTTP REST メッセージを api.openweathermap.org という外部サーバに送信して、この外部サーバは現在の天気情報を返します。
ネームスペースとプロダクションを選択または作成します。Web ポートを使用するには、そのネームスペース内で Web アプリケーションを定義して、ロールを定義する必要があります。ネームスペース、ロール、および Web アプリケーションの作成手順は、“InterSystems IRIS システムの構成” を参照してください。このウォークスルーでは、Web アプリケーションに /restpassthrough (Web アプリケーション名は小文字の必要があります) という名前を付けて、Web アプリケーションの [ディスパッチ・クラス] を EnsLib.REST.GenericServiceOpens in a new tab に設定します。
すべて正常に機能している場合は、呼び出しによって現在のロンドンの天気が含まれた JSON メッセージが返されます。以下に、返される JSON メッセージの例を示します。
{
"coord":{"lon":-0.13,"lat":51.51},
"sys":{"message":0.0441,"country":"GB","sunrise":1399609017,"sunset":1399664214},
"weather":[{"id":802,"main":"Clouds","description":"scattered clouds","icon":"03n"}],
"base":"cmc stations",
"main":{"temp":285.32,"pressure":1008,"temp_min":284.15,"temp_max":286.48,"humidity":91},
"wind":{"speed":5.14,"gust":6.17,"deg":284},
"rain":{"3h":0},
"clouds":{"all":32},
"dt":1399600508,
"id":2643743,
"name":"London",
"cod":200
}
パススルーの背景情報
パススルー・サービスへの呼び出しと外部サーバへの呼び出しの間で、URL がどのように変換されるのかに注目してください。パススルー・サービスに送信される URL は次のとおりです。
http://localhost:52773/Restpassthrough/WeatherRESTPassthroughServ/data/2.5/weather?q=London
外部サーバに送信される URL は次のとおりです。
http://api.openweathermap.org/data/2.5/weather?q=London
data で始まる URL の末尾部分はどちらも同じです。[HTTPサーバ] フィールドでは、発信呼び出しでのサーバを設定します。[URL] フィールドで | という値を指定すると、オペレーションによって受信 URL から Web アプリケーション名と構成名が除去されて、その残り部分が送信 URL に組み込まれます。