APIを知りたい!

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

ADMAGEユニットのA.Mです。

ネットパトロールをしている際に、以下の記事を見つけました。
東京メトロが運行状況などをオープンデータ化、賞金総額200万円のアプリコンテストを開催

2014/09/12より東京メトロが公開するAPIを利用したアプリの募集が始まりました。
どんな作品が受賞するか今から楽しみです。

…そもそもAPIとはどのようなものでしょう?
恐らくは日常生活において何らかの形で触れてはいたのでしょうが、せっかく「APIとは?」という意識が出たので調べてみてみました。

APIを知りたい!

【APIとは】

[定義]

アプリケーションプログラミングインタフェース。
あるコンピュータプログラム(ソフトウェア)の機能や管理するデータなどを、外部の他のプログラムから呼び出して利用するための手順やデータ形式などを定めた規約のこと。
参考:IT用語辞典

[種類]

実際にどのようなAPIが公開されているのかについては、以下のサイトのまとめが参考になりました。
【2014年度版】すべてのビジネスマンに役立つAPI一覧

見てみると有名な会社の多くがAPIを公開しているんですね!
また、XMLだけでなく、CSVやJSONというデータ形式で提供しているところもあるみたいでした。

[JSONとは?]

軽量なデータ記述言語の1つである。構文はJavaScriptにおけるオブジェクトの表記法をベースとしているが、JSONはJavaScript専用のデータ形式では決してなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しに使えるよう設計されている。
参考:Wikipedia

【API実用編】

これらを調べている途中に先輩から「APIは書いてみた方が理解しやすい」とのアドバイスを受けました。
簡単に書けるそうなので、実際に書いてみることにしました。

[書いてみる]

使用言語はPHPで、JSONデータの取得を行います。
利用させていただく公開APIはlivedoorさんの提供する天気情報です。

JSONコードの利用は、json_decodeを使うことでJSONエンコードされた文字列をPHPの変数に変換してくれるそうです。

後は上記リンクのサイトに記載されている内容に従ってプログラムを作成。

<?php
$url="http://weather.livedoor.com/forecast/webservice/json/v1?city=400040";
$json = file_get_contents($url);
$decoded = json_decode($json);
var_dump($decoded);
?>

※city=数字には地域別のID番号を入れます。今回は、例で使われている福岡県の久留米市のIDです。

これで一度実行してみるとこうなりました。

超文字列
超文字列!

なので、実際にここから必要なデータを抽出します。
上記プログラムを以下のように書き直して

<?php
$url="http://weather.livedoor.com/forecast/webservice/json/v1?city=400040";
$json = file_get_contents($url);
$decoded = json_decode($json);
$title = $decoded->title;
print "{$title}";
?>

実行するとタイトルが表示されます。

実行結果

サイトに記載されているプロパティで、用途にあったものを抽出します。
このへんから楽しくなってきます。

画像なども表示してみました。
HTMLなども適当に書いてみて・・・以下のようにしました。

<?php
$url="http://weather.livedoor.com/forecast/webservice/json/v1?city=400040";
$json = file_get_contents($url);
$decoded = json_decode($json);

$title = $decoded->title;
$f = $decoded->forecasts[1];
$tmp = $f->temperature;

$label = $f->dateLabel; //"明日"
$img_url = $f->image->url; //天気画像
$img_title = $f->image->title; //"曇のち雨"
$max = $tmp->max->celsius; //最高気温
$min = $tmp->min->celsius; //最低気温


echo <<<HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>TEST</title>
</head>
<body>
HTML;

print "{$label}の{$title}<br>";
print "<img src=\"{$img_url}\"/><br>";
print "{$img_title}<br>";
print "最高気温は{$max}<br>";
print "最高気温は{$min}<br>";

echo <<<HTML
</body>
</html>
HTML;

?>

実行!
実行結果
こんな感じになりました。
データは更新されるから、同じプログラムでも明日になればまた天気の予報内容が変わるということですね!

[感想]

「APIって便利!」

今は色々なAPIが公開されており、簡単にやりたいことが実現されています。
広告システム的にもAPIは使うタイミングが多々ありますので、今後もAPIについて更に学びたいと思います。






広告システムについてのお問い合わせやご相談、パッケージ製品の詳細はこちらからどうぞ。
http://admage.jp/
アプリ計測SDK admage for Appのお問い合わせ・詳細はこちら。
http://apptizer.jp/

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

コメントを残す

*