「ChatGPT API、Google Maps API、決済 API …」 最近、API という言葉、やたら聞きませんか?

略すと長そうだし、何の役に立つのか、ちょっと曖昧。 この記事では「だいたいわかった気になれる」レベルまで、絵と例え話で説明します。

あちこちで聞く API という言葉
図1:あちこちで聞く「API」という言葉

そもそも API ってなに?

結論から言います。API は アプリ同士が会話するための「窓口」です。

API はアプリ同士の会話の窓口
図2:API はアプリ同士の会話の「窓口」

たとえば、あなたが天気アプリを使うとします。アプリは「天気サービス」に向かって「東京の今日の天気おしえて」と頼みます。すると、しばらくして「晴れ」という結果が返ってきます。

このやりとりの会話の窓口が、API です。

レストランで例えると

ここでひとつ、想像してみてください。あなたは レストランのお客さんです。

お客さん・ウェイター・料理人の図
図3:3人の役割。間を行き来するウェイター=API

奥には 料理人 がいます。あなたは料理人と直接話せません。

でも、間を行き来する ウェイター がいる。注文をして、できあがった料理を運んでくれる。これがまさに API です。

つまりこういうこと
お客さん = あなたが作ったアプリ
ウェイター = API(会話の窓口)
料理人 = サーバー(実際に処理する場所)
メニュー = API ドキュメント(何が頼めるかの一覧)

メニュー(API ドキュメント)の正体

レストランに行ったら、まず メニュー を見ますよね。「ハンバーグセット ¥1,200」「カレー ¥900」のように、何が頼めるかが書いてある。

API にも、これと同じ「メニュー」があります。それが API ドキュメント。 実際の API ドキュメントを覗いてみると、こんな感じ。

ChatGPT API メニューのイメージ
図4:API ドキュメント=メニュー

「何が頼めるか」「どう頼むか」「何が返ってくるか」が全部書いてある。 これを見て、あなたが作ったアプリが「これお願い」と注文する、というわけです。

API が公開されてるサービス、こんなにある

実は私たちが普段使ってるアプリの裏側では、いろんなサービスの API が呼び出されてます。

ChatGPT・Google Maps・天気予報の3つの API
図5:API を公開してる代表的なサービス

たとえば:

  • 飲食店検索アプリの店舗マップ → Google Maps の API を呼び出して地図を埋め込んでる
  • チャット機能を持つアプリ → ChatGPT の API を呼び出して会話させてる
  • 天気予報アプリ → 気象データ API から数値を取ってきて表示してる

つまり「自分が直接 ChatGPT や Google Maps を使う」のではなく、別のアプリがその機能を借りて組み込んでるのが API の本領。これで開発者は「自分で天気予報を作る」「自分で地図を描く」必要がなくなる、というわけです。

なぜ「窓口」が必要なの?

「API なんて通さずに、直接サービスとやり取りすればよくない?」って思いませんでしたか? 実は、それができない理由があります。

直接NG vs API経由OK の比較
図6:直接は通じない。API という共通言語が必要

サービスの中身(サーバー)は複雑で、しかも会社ごとに作りも違う。だから 「これだけ覚えれば誰でも頼める」共通の窓口が必要。それが API の本当の役割。

レストランで言うと「メニューに書いてある料理名で頼めばOK」というルール。これがあるおかげで、お客さんは厨房の事情を知らなくても料理が頼める。

API を使うとどうなる?

普段なら、たとえば「翻訳機能」を一から作るのは大変です。 でも、API を使えば他の人が作った機能を借りられる

API を使わない場合と使う場合の比較
図7:API は「他人の機能を借りる魔法」

※ 数字はあくまでイメージです。実際は使い方や規模で変わります。

これが、最近 API という言葉をやたら聞く理由です。 AI の時代になって、いろんな会社が API を公開し始めた。だから「うちのアプリも API を使えば、AI 機能が一瞬で組み込める」と話題になってるわけです。

この記事で覚えたこと

API のすべて、これ1枚で
図8:API のすべて、これ1枚で

ふんわり理解チェック

  • API はアプリ同士の「会話の窓口」
  • レストランのウェイターをイメージするとわかりやすい
  • API ドキュメント=メニュー、決まったルールで頼む
  • 他人の機能を借りられるから、開発が速くなる

細かい仕組み(REST とか JSON とか)は、また別の記事で少しずつ。今日は 「ふーん、API って窓口なんだ」 くらいの理解で十分です。