APIはアプリやサービス同士が安全かつ決められた方法でやり取りするための窓口です。
本記事ではAPIの意味や役割から仕組み、実際の呼び出し方までを初心者向けにやさしく解説し、今日から触れるための最短ルートを示します。
APIとは?意味と役割
APIの意味と読み方
APIはApplication Programming Interfaceの略で、読み方はエーピーアイです。
プログラムが別のプログラムの機能を使うための「取り決め」や「出入り口」を指します。
人がボタンを押す画面がユーザー向けのインターフェースであるのに対し、APIはプログラム向けのインターフェースです。
たとえでイメージする
レストランで注文を受け取り厨房に伝える店員の役目がAPIだと考えると分かりやすいです。
お客さん(あなたのアプリ)はメニュー(APIの仕様)に従って注文(リクエスト)を出し、店員(API)が料理(データ)を運びます。
APIは何の略か
APIはApplication Programming Interfaceの略称です。
Applicationはアプリケーション、Programmingはプログラムでの利用、Interfaceは接点や窓口を意味し、名前の通り「アプリ同士をつなぐ窓口」です。
身近な例
日常でもAPIはたくさん使われています。
地図をアプリに表示する、SNSでログインする、天気を表示するなどが典型です。
たとえば「Googleでログイン」や「アプリ内の地図表示」は各社のAPIを通じて機能を借りています。
あなたが意識せずとも多くのアプリは裏側でAPI通信をしています。
APIとアプリの関係
アプリは見た目や操作を担当し、APIはデータ取得や処理の共通窓口を担当します。
画面(フロントエンド)はAPIを呼び出し、サーバー(バックエンド)はAPIのルール通りに応答するという役割分担になっています。
この分離により開発や保守がしやすくなります。
API連携のメリット
APIを使うと、一から機能を作らなくても既存の機能を安全に再利用できます。
開発のスピードアップ、品質の向上、コスト削減、サービス同士の連携がしやすいことが主なメリットです。
さらに決められた仕様に沿うため、相手のシステムを勝手に壊しにくいという安心感も生まれます。
APIの仕組み
クライアントとサーバー
APIでは、リクエストを送る側をクライアント、応答する側をサーバーと呼びます。
クライアントが「欲しいもの」を具体的に伝え、サーバーが「結果」を返すというシンプルな仕組みです。
スマホアプリやブラウザは多くの場合クライアントの役割を担います。
エンドポイントとURL
APIにはアクセス先があり、これをエンドポイントと呼びます。
たとえば https://api.example.com/v1/users のようなURLです。
エンドポイントは「どの機能にアクセスするか」を表し、パスやクエリで細かい指定ができます。
典型的なエンドポイントの形
一般的に、/v1のようなバージョン、/usersのようなリソース名、?page=2のような条件が組み合わさります。
URL自体が「どのデータを欲しいのか」を表現するのがポイントです。
HTTPメソッド
APIでは何をしたいかをHTTPメソッド(動詞)で伝えます。
代表的なのはGET(取得)、POST(作成)、PUTやPATCH(更新)、DELETE(削除)です。
よく使うメソッドと用途
| メソッド | 主な用途 | 例 |
|---|---|---|
| GET | データ取得 | ユーザー一覧を取得 |
| POST | 新規作成 | 新しいユーザーを登録 |
| PUT | 全体更新 | ユーザー情報をまるごと更新 |
| PATCH | 部分更新 | ユーザーの名前だけ変更 |
| DELETE | 削除 | ユーザーを削除 |
操作の意図はメソッドで明確にし、エンドポイントは対象となる「名詞」を表すのが基本です。
リクエストとパラメータ
クライアントはリクエストを送ります。
指定方法には3つあります。
URLの一部に含める(パスパラメータ)、URLの?以降に付ける(クエリパラメータ)、本文にJSONで入れる(リクエストボディ)です。
加えてヘッダーでAPIキーなどの情報を渡すこともあります。
パラメータの置き場所の違い
- パスパラメータ: /users/123 の123の部分のように、特定の対象を指定します。対象を一意に特定するIDはここに入れるのが分かりやすいです。
- クエリパラメータ: ?page=2&limit=20 のように、検索条件や並び順、ページングなどに使います。取得条件の調整はクエリに寄せるのが定番です。
- ボディ(JSON): 作成や更新のときに、具体的なデータを送ります。複数項目をまとめて渡すときはJSONにするのが一般的です。
レスポンスとJSON
多くのAPIはJSON形式で結果を返します。
JSONは人にも機械にも読みやすいテキスト形式で、キーと値のペアの集まりです。
JSONの例
{
"id": 123,
"name": "Taro",
"email": "taro@example.com"
}
この例では、idやnameといった「キー」に対して具体的な「値」が入っています。
配列や入れ子(オブジェクトの中にオブジェクト)も扱えます。
ステータスコード
レスポンスにはステータスコードが付き、結果の状態を数字で伝えます。
200番台は成功、400番台はクライアント側のエラー、500番台はサーバー側のエラーが目安です。
よく出会うステータス
| コード | 意味 | 典型シーン |
|---|---|---|
| 200 OK | 成功 | データ取得に成功 |
| 201 Created | 作成成功 | 新規登録が完了 |
| 204 No Content | 成功だが本文なし | 削除成功 |
| 400 Bad Request | リクエストが不正 | 必須パラメータ不足 |
| 401 Unauthorized | 認証が必要 | APIキー不備 |
| 403 Forbidden | 権限不足 | アクセス権がない |
| 404 Not Found | 見つからない | エンドポイントの綴り違い |
| 429 Too Many Requests | 回数制限超過 | 呼び出し過多 |
| 500 Internal Server Error | サーバーエラー | 相手側の障害 |
エラー時はまずステータスコードを手掛かりに原因を絞り込みます。
APIキーと認証
多くのAPIは利用者を識別するためにAPIキーやトークンでの認証を求めます。
APIキーは「だれが呼んでいるか」を示す鍵で、リクエストヘッダーやクエリに添えます。
OAuthなどの方式ではログインを伴う許可の流れを使います。
APIキーは公開リポジトリやフロントのコードに埋め込まないことが重要です。
APIの使い方と例
準備するもの
APIを触る前に、最低限次を準備します。
エディタ、コマンド実行環境、APIのドキュメント、必要に応じてAPIキーです。
ブラウザの開発者ツールやcurl、またはAPIクライアント(Postmanなど)があると便利です。
プログラミングでAPIを使う流れ
基本の流れは変わりません。
ドキュメントを読む→エンドポイントとメソッドを決める→必要なパラメータと認証を用意→最小の例で試す→コードに組み込むという順番です。
まずはGETで小さく動かし、次にPOSTや更新に進むと迷いにくいです。
公開APIの探し方
探すコツは、やりたいこと+APIで検索し、公式サイトのドキュメントを確認することです。
サンプルリクエストがある、レート制限や料金が明記されている、更新が続いていると安心です。
学習用にはJSONPlaceholder、GitHub API、政府や自治体のオープンデータAPIなどが扱いやすいです。
REST APIの呼び出し例
ここでは再現しやすい例としてJSONPlaceholderを使います(学習用の無料API、キー不要)。
まずはGETでデータ取得の感覚をつかみます。
curlでGET
curl -i https://jsonplaceholder.typicode.com/posts/1
ヘッダー付き(-i)で実行するとステータスコードやレスポンスヘッダーも確認できます。
APIキーが必要な場合の例(擬似)
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.example.com/v1/weather?city=Tokyo"
実際はドキュメントに書かれたヘッダー名や渡し方に従う必要があります。
JavaScriptの例
ブラウザのfetchで同じAPIを呼びます。
エラー時はステータスコードを見て分岐すると原因を追いやすいです。
async function getPost() {
try {
const res = await fetch('https://jsonplaceholder.typicode.com/posts/1');
if (!res.ok) {
// res.status で 404 や 500 などを判定
throw new Error(`HTTP ${res.status}`);
}
const data = await res.json();
console.log('title:', data.title);
} catch (err) {
console.error('API error:', err.message);
}
}
getPost();
APIキーが必要なサービスでは、ヘッダーにAuthorizationやX-API-Keyを付けることがあります。
フロントから直接叩くとキーが見えてしまうため、サーバー側のプロキシを用意して隠すのが安全です。
エラーの見かたと対処
まずはステータスコードとエラーメッセージを確認します。
400系はリクエスト見直し、401や403は認証と権限、404はURLやID、429は呼び出し回数、500系は時間をおいて再試行が基本方針です。
ログやリクエストの生データを残しておくと原因特定が速くなります。
APIの注意点と学習ステップ
レート制限と料金
多くのAPIにはレート制限(一定時間あたりの回数制限)や料金プランがあります。
無料枠の範囲や超過時の動作、課金の単位を最初に確認しましょう。
429が返る場合は待ち時間をおく、リトライ間隔を伸ばすなどの配慮が必要です。
セキュリティの基本
APIキーは環境変数で管理し、ソースに直書きしないのが鉄則です。
通信はHTTPSを使い、不要な情報をログに出さないようにします。
公開リポジトリにキーをコミットしてしまった場合はすぐに失効して再発行してください。
バージョンと互換性
APIは時間とともに更新されます。
URLにv1やv2といったバージョンが付く場合は、移行期限や変更点を把握しましょう。
互換性に影響する変更ではレスポンスの形式やフィールド名が変わることがあります。
ドキュメントの読み方
迷ったら次の順で読みます。
概要→認証→サンプルリクエスト→必要パラメータ→レスポンス例→制限事項です。
まずはドキュメントのサンプルをコピペして動かし、そこから自分の要件に合わせて少しずつ変更すると理解が深まります。
学習ロードマップ
最短で身につけるには、GETで1件取得→クエリで絞り込み→POSTで作成→エラー対応→ページングや並び替えの順が分かりやすいです。
成功と失敗の両方を体験し、原因と対処をノート化すると次回のミスが減ります。
次に学ぶこと
慣れてきたら、RESTの設計原則、Webフック(通知の受け取り)、認可(OAuth)、GraphQL、ストレージの署名URLなどに進むと応用力が広がります。
必要になったときに学ぶ姿勢でも十分です。
まとめ
APIはアプリ同士が安全に機能を共有するための共通の窓口で、仕組みは「クライアントがリクエストし、サーバーがレスポンスする」だけです。
エンドポイントやメソッド、パラメータ、認証、ステータスコードといった基本を押さえ、まずは小さなGETから始めてみてください。
少しずつPOSTや更新、エラー対応を経験すれば、APIは強力な味方になります。
