Web API

読み:うぇぶえーぴーあい / 英語表記:Web API

Webサービスの機能やデータを、ほかのプログラムからHTTPなどのWebの技術を使って呼び出せるようにした窓口(インタフェース)。

イマシルちゃんの解説

APIは、プログラム同士が使う「注文の窓口」みたいなものなんだ。

レストランで、決まったメニュー表から料理を注文すれば、厨房の中がどうなっているか知らなくても、料理が出てくるよね。
Web APIも同じで、決まった形でお願い(リクエスト)を送れば、天気や地図や翻訳の結果を返してくれる。
これを使えば、自分のアプリに、よそのサービスの便利な機能を取り込めるんだよ!

より深い解説

定義

API(Application Programming Interface)は、あるソフトウェアの機能を、ほかのソフトウェアから利用するための決まりごと(呼び出し方、渡すデータ、返ってくるデータ)である。Web APIは、そのやり取りを、ネットワーク越しにHTTP(HTTPS)で行うものである。

REST API

現在のWeb APIの多くは、RESTの考え方に基づいて設計されている。

考え方内容
資源をURIで表す例:/users/123(利用者123番)
操作をHTTPのメソッドで表すGET(取得)、POST(作成)、PUT(更新)、DELETE(削除)
ステートレスサーバは、リクエストの間で利用者の状態を保持しない。必要な情報は毎回のリクエストに含める
データ形式主にJSON(XMLも使える)

例:天気の情報を取得する場合

GET https://api.example.com/weather?city=Tokyo
→ {"city": "Tokyo", "temperature": 21, "weather": "sunny"}

利用の管理とセキュリティ

仕組み内容
APIキー利用者(アプリケーション)を識別するための文字列。リクエストに含めて送る
OAuth 2.0利用者の許可を得て、アプリケーションに限定した権限(アクセストークン)を与える
利用回数の制限一定時間あたりの呼び出し回数を制限し、過剰な利用やサービス妨害を防ぐ

APIキーやアクセストークンは、パスワードと同様に秘密にする必要がある。Webページのプログラム(JavaScript)やソースコードの公開リポジトリに、そのまま書き込まないように注意する。

Web APIの活用

活用内容
マッシュアップ複数のサービスのAPIを組み合わせて、新しいサービスを作る
システム連携社内のシステムとクラウドサービスのデータをつなぐ
スマートフォンアプリアプリが、サーバのAPIを呼び出してデータを表示する

SOAPとの比較

REST APISOAP
性格設計の考え方厳密なプロトコル
形式JSONなどXML
重さ軽い重い(拡張仕様が豊富)

実際の試験ではここに出る!

この用語が出てくる記事

↑