Web APIってなに?
どんなメリットがあるの?
わかりやすく教えて欲しい。
こういった疑問にこたえます。
エンジニアの僕がわかりやすく解説します。
Web APIとは?
Web API(Application Program Interface)とは、プログラムがサービスを利用する窓口のことを言います。
Webではクライアントがデータを送信し、サーバがそれを処理し、結果を返すという流れでやりとりが行われます。
Web APIを利用すると、ユーザがWebブラウザから操作しなくてもプログラムが直接サービスを利用することが可能になります。
クライアントとなるプログラムがデータをWebAPIにデータを送信し、それを受け取ったWebサーバが処理結果をプログラムに返します。
Webサーバからの処理結果を受け取ったプログラムはそのデータを使って処理を実行し、結果をクライアントに返します。
Web APIとのデータのやりとりにはXMLやJSONなど構造化されたデータを使用するため、プログラムで扱いやすく、データ量も少なくて済みます。
Web APIの例
Web APIを使えばどんなことができるか?というところを説明します。
例えば、位置情報を送信すればその場所の天気を返してくれるものや、ログイン情報と文章を送信すれば、SNSにその文章が投稿されるようなものなどがあります。
テーマパークのサイトを作成しているとします。
周辺の天気予報をサイトに表示したい場合、天気予報のWeb APIを利用することによって周辺の天気予報の情報を取得し、サイトに表示させることが可能になります。
Web APIが用意されていることで独自に天気予報サービスを作らなくて済み、開発コストを減らすことができます。
実際に公開されているWeb APIの例には次のようなものがあります。
PHPでWeb APIを使ってみる
PHPでWeb APIを使う例を見てみましょう。
Qiita APIを使って記事一覧を取得するということをやってみます。
コードはこんな感じ。
<?php
$url = "https://qiita.com/api/v2/items";
// cURLセッションを初期化
$ch = curl_init();
// オプションを設定
curl_setopt($ch, CURLOPT_URL, $url); // 取得するURLを指定
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 実行結果を文字列で返す
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // サーバー証明書の検証を行わない
// URLの情報を取得
$response = curl_exec($ch);
// 取得結果を表示
$result = json_decode($response, true);
var_dump($result);
// セッションを終了
curl_close($ch);
このプログラムを実行すると、$response
にQiitaのWeb APIで取得したデータが入ります。
PHPで扱うためのJSON形式の文字列をデコードしています。
データが取得できればあとはそれを利用することが可能です。
Web APIとは?まとめ
解説の内容をまとめます。
- Web APIはプログラムがサービスを利用するための窓口のこと
- Web APIのURLへデータを送信すると処理結果を返してくれる
- Web APIを使えば開発コストを削減できる
さまざまなWeb APIがありますので、目的に合うものを探してみてください。
コメント