PowerShellでREST APIをいじる
世の中には本当にありがたいサービスがたくさんあります。
昔では考えられないようなサービスを少しのお金で、時には無料で、受けることができるようになっています。
REST APIはそんなサービスの代表ではないでしょうか。
色々なAPIを使ってみるシリーズ(?)第一弾、天気予報APIを使ってようと思います。
天気予報APIについて
簡単に好きな地域の天気予報を受け取ることができるREST APIです。
livedoorが提供しているサービスです。
使い方は簡単、基本となるURLのお尻に、地域別のID番号をパラメータとしてくっつけます。
http://weather.livedoor.com/forecast/webservice/json/v1?city=400040
できあがったURLををリクエストすると、JSON形式で結果が返ってきます。
PowerShellを使うことで、JSONの処理などを意識することなく結果を扱うことが可能です。
PowerShellで天気予報APIをリクエストしてみる
PowerShellでREST APIにリクエストを送る場合、Windows8以降なら「Invoke-RestMethod」が便利です。
使い方は単純です。
Invoke-RestMethod "http://weather.livedoor.com/forecast/webservice/json/v1?city=400040"
これだけです。
あとは、PowerShellが良い感じに結果のJSONをラッピングしてくれます。
$rec=Invoke-RestMethod "http://weather.livedoor.com/forecast/webservice/json/v1?city=400040"
これで結果のオブジェクトを変数に格納することができます。 JSONがそのままオブジェクトになっています。
ここで便利なのは、$rec変数はJSONオブジェクトのためJSONのプロパティ名でアクセスすることができる点です。 $rec.と書いた後、tabキーでコード補完の一覧にプロパティ名が出てきます。
次のコマンドでタイトルを取得できます。
$rec.title
福岡県 久留米 の天気
天気予報の概況は次のコマンドで取得できます。
$rec.description.text 九州北部地方は、台風第17号の影響により、雨で雷を伴った激しい雨の降っている所があ ります。・・・
他にも最高気温、最低気温なども取得することができます。
おわりに
天気予報APIのPowerShellでの取り扱いについて紹介しました。
PowerShellのInvoke-RestMethodを使うと、JSONの処理などの面倒なことを意識せずにREST APIを使うことができるので便利です。
今回は天気予報APIでしたが、他にもおもしろいAPIがありましたら紹介していきたいと思います。
ここまでお読みいただき、ありがとうございました。