はじめに
今回はWebアプリ開発を通じで学んだWebAPIについての備忘録を書いていきます。
言語はPHPとなります。
対象者
- 未経験エンジニア
- WebAPIについて上手くイメージが持てない方
WebAPIとは
WebAPIとは「Web Application Programming Interface」と言って、簡単に言うと、「異なるWebサービス間でデータやプログラムをサービスとして活用できるように規約や手順が定義されたもの」の総称のことを言います。
WebAPIを使用すると、あるWebサービスで別のWebサービスの機能を活用できるようになります。
例えば、使用例として「X(旧Twitter)に自動で記事を投稿する」ことをやろうとすると、Xが公開しているAPIを使用して自動投稿のプログラムを書いて、Cron設定(定期実行設定)をすればXに自動で記事を投稿することができたり、YoutubeのAPIを使用すれば、Youtubeから人気動画を取得することができます。
WebAPIの仕組み
WebAPIの仕組みとしては、HTTPリクエストを利用してAPIの提供元にリクエストを送信し、API提供元からデータなどのレスポンスを受け取る、という仕組みになります。
APIによっては、XML形式やJson形式でデータが返されます。
XMLとは、HTMLと同じマークアップ言語で、テキスト形式で理解しやすく、目的に応じてタグを定義することができるため、異なるシステム間でのデータのやり取りや管理に広く使用されています。
またWebAPIには、Webの仕組みを利用してAPIを設計する思想である「REST(Representational State Transfer)」と呼ばれる設計思想があります。
RESTとは、欲しいデータをURLという形で示し、呼び出す時はURLを指定して(状況に応じてそこにパラメータを付与)、GETやPOSTなどのHTTPメソッドを使用して呼び出します。
APIから返されるデータの形式にはXMLやJSONなどがあり、現在ではJSONを採用しているWeb APIも多くあります。
XML
<users>
<user>
<userName>イトウさん</userName>
<phoneNumber>xxx-yyyy-zzzz</phoneNumber>
</user>
</users>
Json
Json
{
"status": "success",
"users": [
{
"userId": 1,
"userName": "イトウさん",
"phoneNumber": "xxx-yyyy-zzzz"
}
]
}
実装例
// 実装例:XML
// Yahoo!ニュースのRSSフィードを取得
$url = 'https://news.yahoo.co.jp/rss/topics/top-picks.xml';
// XMLを解析
$xml = simplexml_load_file($url);
$xml->channel->item[0];
// 出力例:平和祈念像 彫刻家がこめた情熱
// 実装例:Json
// YoutubeのAPIのレスポンス(Json)を事前に読み込んで関数の引数に設定
$json = file_get_contents('youtube.json');
$arr = json_decode($json,true);
$item = $arr["items"];
$snippet = $item[0]["snippet"];
echo $snippet["title"];
// 出力例:Official髭男dism - Pretender [Official Live Video]
おわりに
今回書いたWebAPIについてもシステム開発をする上で重要になってくる知識だったので、忘れないためにも備忘録として記事にしました。