API

エーピーアイ / Application Programming Interface

概要

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(削除)
  • ヘッダー: 認証情報やデータの形式など、リクエストに関する補足情報
  • ボディ: POSTPUTで送信する具体的な内容(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アカウントの情報を取得しています。

関連用語

用語説明
JSONAPIのリクエストやレスポンスでよく使われるデータ形式
HTTP/HTTPSAPIの通信で使われるプロトコル
Webhook特定のイベントが発生した際に自動的にHTTPリクエストを送信する仕組み