概要
API(Application Programming Interface)とは、一言でいうと「ソフトウェアやWebサービスの機能を、外部から利用するための窓口(インターフェース)」です。
レストランに例えてみましょう。 あなたが客席から厨房に直接「この肉を焼いてくれ」と頼むことはできません。代わりに、「ウェイター」に注文を伝えますよね。 ウェイターはあなたの注文(リクエスト)を厨房に伝え、完成した料理(レスポンス)をあなたの元へ運んできます。
この「ウェイター」の役割を果たすのがAPIです。
- あなた: APIを利用する開発者やプログラム
- ウェイター: API
- 厨房: 連携したいサービス(例: X(旧Twitter), Google Map, GitHub)
- 注文: リクエスト(例: 「ツイートして」「この場所の地図を見せて」)
- 料理: レスポンス(例: 投稿結果、地図データ)
APIがあるおかげで、私たちはサービスの内部構造(厨房の中)を知らなくても、 決められたルール(メニューと注文方法)に従うだけで、その機能を利用できるのです。
APIの基本用語
APIを利用する上で、いくつか決まった「お作法」があります。代表的なものを紹介します。
エンドポイント(Endpoint)
「どの窓口に話しかけるか」を指定するURLです。 例えば、GitHub APIでIssueを操作するための窓口、ユーザー情報を取得するための窓口など、機能ごとに異なるURLが用意されています。
リクエスト(Request)
APIに対して「何をしてほしいか」を伝える情報です。
- メソッド:
GET(情報取得)、POST(新規作成)、PUT(更新)、DELETE(削除) - ヘッダー: 認証情報やデータの形式など、リクエストに関する補足情報
- ボディ:
POSTやPUTで送信する具体的な内容(JSON形式など)
レスポンス(Response)
リクエストの結果としてAPIから返ってくる情報です。 成功したか失敗したかを示すステータスコード(200, 404など)や、要求したデータがJSON形式で含まれています。
認証(Authentication)
「誰がリクエストしているのか」を証明するための仕組みです。 誰でも自由に操作できては困る機能(例: ツイート投稿、Issue作成)には、APIキーやトークンといった「身分証明書」が必要になります。
実践例:GitHub APIでIssueを作成
開発者にとって最も身近なサービスの1つであるGitHubを題材に、コマンドラインから自分のリポジトリにIssueを立てるという実用的な例を紹介します。
サンプルコードを見る
# 【注意】以下の3点を、ご自身のものに書き換えてください。
# - YOUR_GITHUB_USERNAME: あなたのGitHubユーザー名
# - YOUR_REPOSITORY_NAME: Issueを立てたいリポジトリ名
# - YOUR_PERSONAL_ACCESS_TOKEN: GitHubで発行したトークン
curl -X POST \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: Bearer YOUR_PERSONAL_ACCESS_TOKEN" \
-d '{"title":"API経由でIssueを作成するテスト","body":"curlコマンドからIssueを作成できました!🎉"}' \
https://api.github.com/repos/YOUR_GITHUB_USERNAME/YOUR_REPOSITORY_NAME/issuesこのコマンドの説明
curl -X POST: POSTメソッドでHTTPリクエストを送信-H "Authorization: Bearer ...": 認証トークンを含めて本人確認-d '{...}': 送信するデータ(Issueのタイトルと本文)をJSON形式で指定https://api.github.com/repos/.../issues: GitHubのIssue作成用エンドポイント
REST APIとは?
REST APIは、Webサービスで広く利用されるAPIの設計原則の一つです。 HTTPメソッド(GET, POSTなど)とURLを使ってリソースを操作するシンプルで分かりやすい設計が特徴です。
| HTTPメソッド | 用途 | 例 |
|---|---|---|
GET | データの取得 | ユーザー情報を取得 |
POST | 新規作成 | 新しいIssueを作成 |
PUT | 更新 | 既存のIssueを更新 |
DELETE | 削除 | Issueを削除 |
実際にやってみよう:GitHub API呼び出しデモ
ボタンをクリックして、実際にGitHub APIからユーザー情報を取得してみましょう!
GitHub APIを呼び出す
GitHubの公式アカウント情報を取得します
💡 このデモでは、https://api.github.com/users/github にGETリクエストを送信し、GitHubアカウントの情報を取得しています。
関連用語
| 用語 | 説明 |
|---|---|
| JSON | APIのリクエストやレスポンスでよく使われるデータ形式 |
| HTTP/HTTPS | APIの通信で使われるプロトコル |
| Webhook | 特定のイベントが発生した際に自動的にHTTPリクエストを送信する仕組み |