APIは「機能」ではなく「窓口」である
APIという言葉は難しそうに見えますが、正体はそれほど複雑ではありません。
APIとは、システムにお願いをするための受付窓口です。
ポイントは「処理そのもの」ではないことです。
処理はサーバーの内部で行われます。APIは、その依頼方法を決めています。
このイメージを銀行で考えると理解しやすくなります。
銀行の窓口で考える
銀行には金庫があります。
しかし、利用者が直接金庫に入ることはできません。
代わりに窓口があります。
- 振込したい
- 残高を知りたい
- 引き出したい
これらはすべて、窓口を通して依頼します。
金庫の中身や仕組みは知らなくても利用できます。
この窓口に相当するのがAPIです。
システムの内部処理(口座管理・計算・記録)は、バックエンドが担当します。
APIは「何をどう頼めばよいか」を決めています。
Webでの実際の動き
例えば、天気アプリを開いたときの流れです。
1. アプリがAPIに「東京の天気」を要求
2. サーバーが天気情報を取得
3. 結果を返答
4. 画面に表示
GET /weather?city=tokyo
これは「東京の天気を教えてください」という意味の依頼です。
返ってくるのは画面ではなくデータです。
{ "temp": 12, "weather": "cloudy" }
アプリはこのデータを元に画面を作ります。
なぜAPIが必要なのか
直接データベースにアクセスすれば早そうに思えます。
しかし、それは危険です。
もし誰でも直接触れると、
- データ削除
- 改ざん
- 情報漏洩
が起きます。
銀行の金庫に誰でも入れる状態になります。
そこで、窓口(API)を設けます。
窓口では、できることが決められています。
- 残高確認は可能
- 他人の口座閲覧は不可
- 不正な要求は拒否
つまりAPIは、安全装置でもあります。
APIがあると何が変わるのか
APIがあることで、画面と処理を分離できます。
同じシステムを
- Webサイト
- スマホアプリ
- 管理画面
から利用できます。
それぞれが同じ窓口に依頼するためです。
つまりAPIは、システムを複数の入り口から使えるようにします。
注意点:速いとは限らない
APIを使うと必ず高速になるわけではありません。
通信が増えるため、設計が悪いと逆に遅くなることもあります。
- 細かく呼びすぎる
- 不要なデータを取得する
この場合、待ち時間が増えます。
窓口に何度も並び直している状態に近いです。
よくある誤解
API=特別な技術
実際には通信の取り決めです。
新しい仕組みというより、役割の名前です。
APIは開発者だけのもの
ユーザー体験に直結します。
検索結果の速さや自動更新はAPIの影響です。
まとめ
APIはプログラムの内部処理ではありません。
システムと外部をつなぐ約束された依頼方法です。
銀行で言えば金庫ではなく窓口です。
利用者は内部構造を知らずにサービスを使えます。
Webサービスが複数のアプリやサイトから利用できるのは、
共通の窓口を持っているためです。
Webの理解は、画面を見ることから始まりますが、
仕組みを理解するには「どこにお願いしているか」を意識すると分かりやすくなります。