OutSystemsでlivedoorお天気Webサービスを呼んで見る

外部RESTをOutSystemsのActionとして扱う機能を利用してみます。

対象は、livedoorのお天気Webサービス

地域を指定するIDをクエリストリングにつけてGETすることでJSON形式の天気予報を返してくれます。

OutSystemsでRESTのアクションを定義

Service Studioで、Logic>Integrations>RESTを右クリックして、「Consume REST API…」を選択。

swaggerファイルを指定して一気に設定する方法もありますが、ファイルがないので、個別に定義することにします。下の図でいうと左側。「ADD SINGLE METHOD」を利用します。

GETメソッドのAPIなのでURLだけ指定します。

URL (パラメータとして地域を指定するIDを受け取る指定)

http://weather.livedoor.com/forecast/webservice/json/v1?city={cityId}

ダイアログのGETの右隣に上記URL。Testタブに{}で指定したパラメータ名が出てくるので、livedoorのサイトでサンプルとして表示されている400040を設定して「TEST」ボタンをクリック。

サーバで実際にリクエストを投げて、結果をResponseに表示してくれます。

COPY TO RESPONSE BODY(TESTボタンの下)をクリックしてOKすると、結果のJSON構造を解析して、OutSystems内のStructureとして定義されました。

APIはGetJsonアクションとしてOutSystems内に定義され、入力変数が{}で囲ったクエリストリング、出力変数が上記の解析結果です。

動作確認

適当な画面のPreparationに作成されたGetJsonをドロップし、適当なcityIdを設定したところ(cityId=410020を指定しました)。

このように一般のActionであるかのように処理に組み込めます。

本来であれば、ユーザが選択した地域のIDを渡したりするところですが、ここではテストなので固定値にしています。

livedoorのページ内にレスポンスフィールドとしてAPI結果構造が示されていますが、この通りの方法で取得結果にアクセスできます。

例えば、livedoorのページ内で、descriptionの内側に示されているtext(天気予報の文章による概略を示す項目)にアクセスするには、「GetJson.Response.Description.Text」のようにします。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする