5歳児でもわかる「APIの絵本」
アプリとアプリは、どうやってお話をしているのでしょう?
実は、その間には「API」という便利な窓口があります。
- APIってそもそも何?
- 「リクエスト」と「レスポンス」って何?
- Web API・OS API・ランタイムAPIの違い
- Google MapsやLINEはどうやって動いている?
- APIキーとAPIトークンって何?
- APIの便利なところと注意点
📕 第1話「APIって、いったい何?」
「東京の天気を知りたいなぁ……」
でも、アプリくんは天気の情報を持っていません。
そこで、天気の情報を持っている 「天気サーバー」にお願いすることにしました。
「東京の天気を教えてください!」
ところが、アプリくんが直接サーバーの中に入って、 天気データを探すわけではありません。
その間にある 「お願いを受け付ける窓口」。 これがAPIです。
APIとは、ソフトウェア同士をつなぐ「窓口」です。
APIは「Application Programming Interface」の略です。
ちょっと難しそうな名前ですが、 3つに分ければ簡単です。
| 言葉 | ざっくり意味 | 5歳児向けに言うと |
|---|---|---|
| Application | アプリやサービス | 📱「アプリちゃん」 |
| Programming | プログラムで指示する | 🗣️「こうして!」 |
| Interface | つなぐ接点・窓口 | 🚪「お願いする場所」 |
「アプリが、別のコンピューターやサービスに お願いするための窓口」 と考えるとわかりやすいです。
📕 第2話「APIはレストランの店員さん?」
APIは、レストランの 店員さん にたとえると、とてもわかりやすくなります。
お客さんは、厨房に勝手に入って 料理を作ってもらうわけではありません。
「カレーください!」
「承知しました!」
カレーを作る
そして完成したカレーを、 お客さんに渡します。
「カレーください!」
↓
リクエスト(Request)
「カレーどうぞ!」
↓
レスポンス(Response)
📕 第3話「リクエストとレスポンス」
APIの基本は、とてもシンプルです。
「東京の天気を教えて!」
リクエストお願いを受け取る
「晴れ・28℃」
「晴れ・28℃」
📤 リクエスト = 「これください!」
📥 レスポンス = 「どうぞ!」
📕 第4話「JSONという箱」
APIからデータを受け取るとき、 Web APIではJSONという形式がよく使われます。
JSONは、コンピューター同士が情報を受け渡すための 「データの箱」のようなものです。
{
"city": "Tokyo",
"weather": "晴れ",
"temperature": 28
}
人間が見ても、
- city → 東京
- weather → 晴れ
- temperature → 28
と、なんとなく意味がわかります。
「この箱には、東京の天気と気温が入っていますよ」 とコンピューターにわかりやすく伝えるための形式です。
📕 第5話「APIにはいろんな種類がある」
実は「API」という言葉は、 とても広い意味を持っています。
大きく分けると、次のようなAPIがあります。
| 種類 | どこにある? | 例 | イメージ |
|---|---|---|---|
| Web API | インターネット | Google Maps、天気API | 🌐 |
| OS API | Windows・macOSなど | 画面表示、キー入力 | 💻 |
| ランタイムAPI | プログラムの実行環境 | Javaの標準ライブラリなど | ⚙️ |
🌐 Web API
インターネットを通じて、 別のサービスとお話をするAPIです。
たとえば天気アプリが、 天気データを提供するサーバーに 「東京の天気をください」とお願いします。
現在「API」という言葉を聞いたとき、 Web APIを指しているケースはかなり多いです。 このやり取りはHTTPという通信の約束事の上で行われており、HTTPは通信を7つの役割に分けたOSI参照モデルでいう一番上の「アプリケーション層」にあたります。
💻 OS API
WindowsやmacOSなどのOSも、 APIを提供しています。
たとえばアプリが、 「キーボードが押されたよ」 「この場所に画面を表示して」 とOSの機能を利用するときにもAPIが使われます。
⚙️ ランタイムAPI
JavaやPythonなどのプログラムを動かす環境にもAPIがあります。
Javaでは、文字列を操作したり、 ファイルを読んだり、 日付を扱ったりするための便利な機能が用意されています。
これも広い意味ではAPIです。 具体的にどんな機能が用意されているかは、JavaのAPIを見るとイメージがつかみやすいです。
📕 第6話「Google MapsもAPIを使っている」
たとえば不動産サイトを作るとします。
地図をゼロから作るのは大変です。
道路、建物、住所、地名……。 すべて自分で用意する必要があります。
そこで地図サービスのAPIを使います。
「この場所の地図ください」
「どうぞ!」
すると、地図サービスが持っている情報を、 自分のサイトで利用できます。
「他の人が作った便利な機能を、 自分のサービスから利用できる」 というところです。
📕 第7話「LINEログインもAPI」
Webサイトを使っていると、 「Googleアカウントでログイン」 「LINEでログイン」 というボタンを見かけることがあります。
これもサービス同士がAPIなどを使って 連携している代表例です。
「LINEでログイン」
本人確認
「ログインOK!」
📕 第8話「お買い物の決済にもAPI」
ネットショップで買い物をするとき、 クレジットカード決済が行われます。
お店がカード情報を何でも自分で管理するのではなく、 決済サービスと連携して処理する仕組みがあります。
「この注文を決済して」
支払いを処理
📕 第9話「天気アプリの裏側」
天気アプリを開くと、 「東京 28℃ 晴れ」 などと表示されます。
では、その数字をアプリが全部自分で 調べているのでしょうか?
天気データを提供するサービスのAPIに問い合わせて、 その結果を画面に表示している場合があります。
📕 第10話「LINEの自動返信もAPI」
LINEで質問すると、 自動的に返事をしてくれる 「ボット」を見たことがあるでしょうか。
こうした仕組みでは、 LINE Messaging APIなどのAPIが利用されます。
「10時〜18時です!」
📕 第11話「APIはどうして便利なの?」
自分で全部作らなくていい
すでにある便利な機能を API経由で利用できます。
開発時間を短くできる
ゼロから作るより、 既存サービスを利用したほうが 早いことがあります。
サービスを組み合わせられる
地図、決済、認証、天気など、 いろいろなサービスを組み合わせられます。
AIとの連携にも使われる
AIサービスもAPIを提供しているものがあり、 プログラムから利用できます。
📕 第12話「でも、APIには注意点もある」
APIはとても便利ですが、 他のサービスに頼ることになるため 注意も必要です。
⚠️ サービスが止まったら?
外部サービスのAPIを使っている場合、 そのサービスに障害が起きると、 自分のサービスにも影響する可能性があります。
⚠️ 仕様が変わったら?
APIの仕様が変更されることもあります。 その場合、自分のプログラムを修正する必要があります。
⚠️ 使える回数に上限があることも
APIにはレートリミットと呼ばれる 「一定時間に何回まで使える」という制限が 設定されている場合があります。
100回を超えてお願いすると、 「ちょっと待ってください」 とエラーになることがあります。
📕 第13話「APIキーという秘密のカギ」
APIを利用するとき、 「あなたは誰ですか?」 と確認されることがあります。
そのとき使われる認証情報の一つが APIキーです。
🚪「カギを見せてください」
というイメージです。
APIキーを公開してしまうと、 第三者に不正利用される可能性があります。
ソースコードへ直接書き込まず、 環境変数などを使って管理するのが一般的です。
📕 第14話「APIトークンという期限付きの通行証」
APIではトークンと呼ばれる 認証情報が使われることもあります。
APIトークンは、ログイン後などに発行され、 一定時間だけ使える仕組みとして 利用されることがあります。
ただし、期限は今日までです!」
アプリケーションなどを識別するための 認証情報として使われることが多いものです。
🎫 APIトークンログイン後などに発行され、 期限付きの認証情報として 使われることが多いものです。
ただし、実際の仕様はサービスごとに異なります。
「APIキー=必ず無期限」 「APIトークン=必ず期限付き」 と決めつけるのではなく、 利用するAPIの仕様を確認することが大切です。
📕 第15話「REST APIってなに?」
Web APIには、いろいろな設計方法があります。
その中でもよく使われる考え方の一つが REST APIです。
REST APIでは、URLとHTTPメソッドなどを使って、 データを取得したり、登録したり、 更新したり、削除したりします。
| 操作 | イメージ |
|---|---|
| GET | 📖 データを見る |
| POST | 📦 データを作る |
| PUT / PATCH | ✏️ データを変更する |
| DELETE | 🗑️ データを削除する |
🧓 SOAP APIは?
SOAPもWebサービスで利用されてきた 通信方式の一つです。
XMLを使って厳密にデータをやり取りする仕組みで、 古くから利用されているシステムでは 現在も使われています。
一方、新しいWebサービスではREST APIなど、 よりシンプルな方式が選ばれることが多くあります。
📕 第16話「もしAPIがなかったら?」
もし便利なAPIがなかったら、 アプリ開発者はたくさんの機能を 自分で作らなければなりません。
地図なら地図を作る。
決済なら決済システムを作る。
認証なら認証システムを作る。
天気なら天気データを集める。
とても大変です。
APIがあることで、 「すでにある便利なサービスを借りる」 ことができます。
📕 第17話「APIはエンジニアの魔法の窓口」
ここまでの話を全部つなげてみましょう。
アプリが……
APIという窓口に……
別のサービスへお願いする。
結果が返ってくる。
📤 リクエスト
「これをください!」
↓
🚪 API
↓
📥 レスポンス
「どうぞ!」
📕 第18話「よくある質問」
APIは、ソフトウェア同士をつなぐ仕組み全般を指す言葉です。
Web APIは、その中でもHTTPなどを使って ネットワーク経由で利用するAPIです。
使えます。
Web APIの場合、指定されたURLに 決められた形式でリクエストを送ると、 結果が返ってくるものがあります。
無料で利用できるAPIを実際に触ってみると、 「リクエスト → レスポンス」の感覚を つかみやすくなります。
新しく作るシステムなら、 まずREST APIを検討すればよいでしょう。
ただし、既存システムがSOAPを利用している場合は、 相手側の仕様に合わせる必要があります。
すぐにそのキーを無効化し、 新しいキーを発行するのが基本です。
公開リポジトリなどに誤って登録してしまった場合も、 放置しないことが重要です。
📕 最終話「APIは怖くない」
最初は「API」という言葉を聞くと、 なんだか難しそうに感じます。
でも、実際にやっていることは、 それほど難しくありません。
「別のコンピューターやサービスに お願いするための窓口」
そして基本的な流れは、
「これください!」
お願いを受け取る
「どうぞ!」
これだけです。
🎁 APIについて覚えておきたい5つのこと
- APIはソフトウェア同士をつなぐ窓口
- 基本は「リクエスト」と「レスポンス」
- Web APIだけでなく、OSやランタイムにもAPIがある
- Google Maps・LINE・決済・天気など、 身近なサービスでも使われている
- APIキーやトークンは大切な認証情報なので安全に管理する
おしまい
APIは難しい魔法ではありません。
「お願いする窓口」だと思えば大丈夫です。
実際にAPIを触ってみると、
「あ、このリクエストがお願いで、
このレスポンスが返事なんだ!」
と、もっと身近に感じられるようになります。
そして、AIがコードを書いてくれる時代だからこそ、
「このコードはAPIに何をお願いしているんだろう?」
と考えられることが、
エンジニアにとって大切な力になります。
おさらい:アプリくんのお願いが届くまで
※「1分間に100回まで」は、この絵本の第12話に出てくる例です。実際の上限はAPIごとに異なります。

