【えーぴーあい】

API とは?

💡 アプリとアプリをつなぐ「注文窓口」
📌 このページのポイント
アプリA (利用者) リクエスト GET /weather?city=Tokyo レスポンス {"temp": 22, "sky": "晴れ"} API (窓口・メニュー) GET /weather POST /message DELETE /user/1 ルール通りに頼めば データが返ってくる サービスB (気象情報など) DB APIは「どう頼めばどう返ってくるか」のルールを決めた窓口
アプリはAPIという窓口を通じてサービスやデータベースとやりとりする。中の仕組みを知らなくても使える
ひよこ ひよこ

APIって何?よく聞くんだけど。

ペンギン先生 ペンギン先生

レストランで例えると分かりやすいよ。お客さん(アプリ)がウェイター(API)に注文して、厨房(サービス・データベース)から料理(データ)を受け取る感じ。お客さんは厨房の中を知らなくてもOKで、ウェイターに頼むだけで料理が来るよね。

ひよこ ひよこ

具体的にはどんな場面で使われてるの?

ペンギン先生 ペンギン先生

スマホの天気アプリを思い浮かべてみて。あのアプリは自分で気象データを持っているわけじゃなくて、気象サービスのAPIに「今日の東京の天気を教えて」とリクエストして、受け取ったデータを画面に表示しているんだよ。

ひよこ ひよこ

APIって自分で作ることもできるの?

ペンギン先生 ペンギン先生

もちろん!自分のサービスを外から使えるようにしたいとき、APIを作るんだ。「GET /users/1 を呼んだらユーザー情報を返す」みたいなルールを決めて公開するよ。

ひよこ ひよこ

GETとかPOSTとか聞くけど、何回呼んでも同じ結果になるやつとそうじゃないやつがあるって本当?

ペンギン先生 ペンギン先生

実はベテランエンジニアでも意外と説明できない話で、「冪等性」という概念なんだ。何度実行しても結果が同じなら「冪等である」って言うんだ。GETは何度呼んでも同じデータを返すし、DELETEも「すでに消えてる」なら2回目以降も結果は変わらない。でもPOSTは呼ぶたびに新しいデータを作るから冪等じゃない。システムが途中で止まったとき「もう一度リクエストを送っていいか?」を判断する上でとても重要な概念なんだけど、ベテランエンジニアでも「DELETEが冪等って本当に?」と議論になることがあるくらい、ちゃんと理解している人が少ない話なんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「API」って出てきたら「アプリ同士が決まったルールで情報をやりとりする窓口のことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「API(Application Programming Interface)」 = アプリケーション・プログラミング・インターフェース
💬 Interfaceは「接点・窓口」という意味。アプリケーションをプログラムで操作するための接点、という意味だよ
← 用語集にもどる