Postmanを使ってAPIを叩いてみる

最近はREST APIを公開しているサービスやソフトウェアが増えてきてますね。

REST , JSON , Python , XML , PHPあたりは用語として押さえておきたいところです。 

 

最近、BIG-IPのiControlまわりを少しづつ触り始めてまして、手始めに、

livedoor天気とPostmanを使ってAPIを使った簡単なWEBを作ってみたいと思います。

 

 

PostmanはGoogle Chromeのアドオン、WEBアプリです。

まずは以下からダウンロードしてインストールを進めてください。

 

Postman - A powerful HTTP client to test web services

 

起動するとURLを入力する場所があると思いますので、そこまで確認したらAPI

提供している側の情報を確認します。

 

今回は冒頭に記載した通り、livedoor 天気情報を取得したいと思います。

以下を見ればなんとなくわかると思いますが、データフォーマットはJSON形式です。

 

お天気Webサービス仕様 - Weather Hacks - livedoor 天気情報

  JSONデータをリクエストする際のベースとなるURLは以下になります。
  http://weather.livedoor.com/forecast/webservice/json/v1
  このURLに下の表のパラメータを加え、実際にリクエストします。

 

この情報を元に、早速Postmanに入れてみます。

 

f:id:komeiy:20140524011744p:plain

 

URL部分に先ほどのlivedoor天気で公開されているURLを入力します。

あとはパラメータとして"city=230010"を入れてます。

 

では、Sendボタンを押してみましょう。

f:id:komeiy:20140524140504p:plain

 

問題なければ200 OKでパラメータが返ってくるかと思います。形式はJSONです。

上部はcityで指定した愛知県の都市ごとの天気予報ページが返ってきてます。

 

f:id:komeiy:20140524140714p:plain

 

肝心のデータは下へページをスクロールすると、forecast -> dateLabelが今日の部分にありますね。

forecasts: [

  • -
    {
    • dateLabel"今日"
    • telop"晴れ"
    • date"2014-05-24"
    • -
      temperature: {
      • minnull
      • -
        max: {

 

2014/5/24 今日の天気は晴れ。最高気温は摂氏27度で華氏もついてきてますね。

同様に明日の情報も返ってきてます。

 

なんだか天気予報アプリの裏側を見た気分ですね。

簡単ですよね?あとはこの情報を元に自身のサイトに表示できるようにします。

 

今回はPHPを使いたいと思います。こちらの検証環境ではApacheのデフォルトパスを使用しているので、

/var/www/html/の配下にAPI-testフォルダを作成して、otenki_simple.phpを作成します。

 

中身は非常に簡単で、指定した地域の今日の天気とアイコンを表示するのみです。

 

$ cat otenki_simple.php

<?php

$tmp_url = "http://weather.livedoor.com/forecast/webservice/json/v1?city=230010";

$json = file_get_contents($tmp_url,true) or die("Failed to get json");

$json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');

$obj = json_decode($json);

 

$img_url = $obj->forecasts[0]->image->url;

$date = $obj->forecasts[0]->date;

$title = $obj->forecasts[0]->image->title;

 

?>

<h1>愛知県の天気</h1>

<div>

<p> TODAY : <?php echo $date;?></p>

<p> <?php echo "<img src='".$img_url."'>"; ?> <?php echo $title; ?></p>

<p> copyright <a href="http://weather.livedoor.com/">livedoor 天気情報</a>'</p>

 

</div>

 

 

早速、ファイルを作成して保存します。タイトルは面倒だったのでそのまま愛知県と記載してますが、Location->cityから取ってきてもOKでです。forcast[1]で明日の情報も取れますし、気温情報をつけてもいいですね。今回はそれが目的ではないので割愛します。

 

f:id:komeiy:20140524151509p:plain

 

どうでしょうか。なんとなくAPIって何?って方もイメージはつきましたか?

TwitterAPIを公開しているので触ってみると天気より面白く勉強できそうですね。

Twitter API ポケットリファレンス (POCKET REFERENCE)

 

次は実践編ということで、BIG-IPかNexus1000Vのステータス取得や設定追加をやってみたと思います。

 

公開API活用ガイド (I・O BOOKS)

公開API活用ガイド (I・O BOOKS)

 

  

よくわかるPHPの教科書

よくわかるPHPの教科書

 

 

 

 

シェアして頂けると嬉しいです。 もし参考になったよという方がいれば是非お願いします。モチベーション維持の観点で非常に励みになります。

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