API
Application Programming Interface
概要(サマリー)
APIとは、ソフトウェアやサービス同士が、決められたルールに従って機能やデータをやり取りするための窓口のことである。
たとえば、自分の作ったアプリに「天気情報を表示したい」「地図を表示したい」「AIの文章生成を組み込みたい」と思ったとき、相手サービスの中身を直接触るのではなく、そのサービスが用意しているAPIを通してやり取りする。レストランでたとえるなら、客の注文を厨房に伝え、料理を運んでくれる受付やウェイターのような役割だと考えると分かりやすい。
APIにはいろいろな種類があるが、初心者がAIコーディングやWeb開発でよく出会うのは、インターネット越しに使うWeb APIである。
詳細解説
APIとは何か
APIは Application Programming Interface の略である。直訳すると「アプリケーションをプログラムから利用するための接点」のような意味になる。
APIがあると、開発者は相手のサービスやソフトウェアの内部構造をすべて知らなくても、決められた方法で機能を利用できる。
たとえば、天気サービスが次のようなAPIを用意しているとする。
GET https://api.example.com/weather?city=tokyo
この入口に決められた形でリクエストを送ると、天気データが返ってくる。使う側は、天気サービスのデータベース構造や内部処理を知る必要はない。APIのルールに従ってお願いすれば、必要な結果を受け取れる。
APIは「公式な入口」である
APIは、他のサービスの中身へ勝手に入り込む仕組みではない。サービス提供側が「この機能は、この形式で使ってよい」と用意した公式な入口である。
サービス提供側は、APIとして次のような情報を決める。
- どのURLへリクエストを送るか
- どんなデータを送るか
- どんな形式で返すか
- 認証が必要か
- どの操作が許可されているか
- どれくらいの回数まで使えるか
このようにルールを決めることで、外部のアプリは安全で整理された形で連携できる。APIは、サービス同士をつなぐための「自由な裏口」ではなく、「管理された正規の窓口」である。
APIでできること
APIを使うと、他のサービスの機能やデータを自分のアプリやサイトから利用できる。
たとえば、次のようなことができる。
- 地図サービスの地図や住所検索を使う
- AIサービスに文章生成や要約を依頼する
- 翻訳サービスで文章を翻訳する
- 決済サービスで支払い処理をする
- 天気情報や株価情報を取得する
- SNSの投稿やプロフィール情報を取得する
- 自社システム同士で顧客データを連携する
つまりAPIは、外部の機能を部品のように借りて使うための仕組みでもある。すべてを自分でゼロから作らなくても、既存サービスの強力な機能を組み込めるのが大きなメリットである。
WebページとWeb APIの違い
初心者が混同しやすいのが、普通のWebページとWeb APIの違いである。
Webページは、人間がブラウザで見たり操作したりするためのものである。見た目、文章、ボタン、画像、レイアウトなどがある。
一方、Web APIは、主にプログラム同士がデータをやり取りするためのものである。見た目よりも、データの受け渡しが中心になる。
たとえば、ブラウザで開くときれいな画面が出るのがWebページで、プログラムからアクセスするとJSONなどのデータを返すのがWeb API、というイメージである。
{
"city": "Tokyo",
"temperature": 24,
"condition": "cloudy"
}
このようなデータを受け取ったアプリは、それを画面に表示したり、別の処理に使ったりできる。
APIはリクエストとレスポンスで動く
Web APIでは、多くの場合、アプリがAPIへお願いを送り、APIが結果を返す。
この「お願い」をリクエスト、「返事」をレスポンスと呼ぶ。
アプリ → API: 東京の天気を教えてください
API → アプリ: 東京は曇り、気温は24度です
実際のWeb APIでは、このやり取りはHTTPリクエストとHTTPレスポンスとして行われることが多い。
たとえば、JavaScriptでは次のようにAPIへリクエストを送れる。
fetch("https://api.example.com/weather?city=tokyo")
.then((response) => response.json())
.then((data) => {
console.log(data);
});
この例では、fetchを使ってAPIにアクセスし、返ってきたJSONデータをJavaScriptで扱っている。
EndpointとはAPIの具体的な接続先である
APIを使うときには、Endpointという言葉もよく出てくる。Endpointとは、APIへリクエストを送る具体的な接続先のことである。
たとえば、次のようなものがEndpointである。
GET https://api.example.com/users
GET https://api.example.com/users/123
POST https://api.example.com/orders
APIはサービス全体の窓口や仕組みを指す広い言葉で、Endpointはその中の具体的な入口である。
初心者向けには、APIが「役所の窓口全体」、Endpointが「住民票を取る窓口」「申請書を出す窓口」のような個別窓口だと考えると分かりやすい。
APIキーとの関係
多くのAPIでは、誰でも無制限に使えるわけではない。そこでよく使われるのがAPIキーである。
APIキーは、「この利用者やプロジェクトには利用が許可されている」と相手サービスに示すための秘密の文字列である。
整理すると、次のようになる。
| 用語 | 役割 |
|---|---|
| API | 機能やデータを使うための窓口 |
| APIキー | その窓口を利用するための認証情報 |
| Endpoint | APIの具体的な接続先 |
APIキーはAPIそのものではない。APIを使うために必要になることがある認証情報である。この違いを分けて理解しておくと、エラー対応やドキュメント読解がしやすくなる。
REST APIとの関係
APIの中でも、Web開発で特によく聞くのがREST APIである。
Web開発で一般的なREST APIでは、HTTPの仕組みを使って、URLで対象を示し、HTTPメソッドで操作を示すことが多い。
たとえば、ユーザー情報を扱うREST APIなら次のように表現されることがある。
GET /users ユーザー一覧を取得
GET /users/123 ユーザーID 123 の情報を取得
POST /users 新しいユーザーを作成
PATCH /users/123 ユーザーID 123 を更新
DELETE /users/123 ユーザーID 123 を削除
APIは広い言葉で、REST APIはその中の一種である。つまり「API = REST API」ではない。GraphQL、WebSocket API、OSやライブラリのAPIなど、APIにはさまざまな形がある。
APIを使うときに見るポイント
APIを使うときは、なんとなくURLへアクセスするだけではうまくいかない。相手サービスのドキュメントを読み、必要なルールを確認する必要がある。
特に見るべきポイントは次のとおりである。
- Base URL
- Endpoint
- HTTPメソッド
- 必要なパラメータ
- 認証方法
- リクエストの形式
- レスポンスの形式
- ステータスコード
- 利用制限や料金
たとえば、同じ「ユーザー情報を取得する」APIでも、サービスによってURL、認証方法、返ってくるJSONの形は異なる。API連携では、公式ドキュメントを読む力が重要になる。
APIのメリットと注意点
APIを使う大きなメリットは、他人が作った高度な機能を、自分でゼロから作らずに利用できることである。
たとえば、AIエンジン、地図システム、決済機能、メール配信基盤などを自作するのは大変である。しかしAPIを使えば、必要な機能を外部サービスから借りて、自分のアプリに組み込める。
一方で、APIには注意点もある。
- 相手サービスの仕様変更や障害の影響を受ける
- 利用回数や料金の制限があることが多い
- APIキーなどの認証情報を安全に管理する必要がある
- ネットワーク通信の失敗や遅延を考える必要がある
- エラー時の処理をきちんと用意する必要がある
- ブラウザから呼ぶ場合はCORSの制限に注意する必要がある
APIは便利な部品だが、外部に依存する部分でもある。そのため、成功する前提だけでなく、失敗したときの動きも考えておくことが大切である。
AIコーディングとの関係
AIコーディングでは、APIを使う場面が非常に多い。AIに「天気APIを使って画面を作って」「OpenAI APIを呼び出して要約機能を作って」「バックエンドにREST APIを作って」と依頼することがある。
AIは、APIを呼び出すコード、レスポンスを画面に表示する処理、エラー処理、API仕様のたたき台などを生成できる。
ただし、AIに任せると次のような問題が起こることもある。
- 実在しないEndpointを想像で書く
- APIキーをフロントエンドに直接置く
- エラー処理を省略する
- レート制限や料金を考慮しない
- 公式ドキュメントと違うパラメータ名を使う
AIに依頼するときは、使いたいAPIの公式ドキュメント、Endpoint、認証方法、入力と出力の例を一緒に渡すと精度が上がる。
このAPIドキュメントに従って、JavaScriptのfetchでデータを取得するコードを書いてください。
APIキーは環境変数から読み込み、フロントエンドには直接置かない構成にしてください。
失敗時のエラー処理とステータスコード別の分岐も入れてください。
APIはAI時代の開発で外部サービスを組み込むための重要な接点である。ただし、AIの出力が正しいかどうかは、必ず公式ドキュメントと実際のレスポンスで確認する必要がある。
よくある勘違い
APIとAPIキーは同じもの?
同じではない。APIは機能やデータを使うための窓口で、APIキーはその窓口を使うための認証情報である。APIキーを持っていても、APIの使い方やEndpointを知らなければ正しく利用できない。
APIはWebサービスだけのもの?
Webサービスだけではない。OS、ブラウザ、ライブラリ、フレームワークにもAPIはある。ただし、初心者がWeb開発やAI連携でよく触れるのはWeb APIである。
APIを使えば何でも自由にデータを取れる?
自由に取れるわけではない。APIには利用できる機能、取得できるデータ、認証、料金、利用制限がある。サービスの利用規約やドキュメントに従う必要がある。
APIが返すデータは必ずJSON?
必ずではない。現代のWeb APIではJSONがよく使われるが、XML、テキスト、画像、バイナリデータなどを返すAPIもある。利用するAPIのレスポンス形式を確認することが大切である。
まとめ
- APIは、ソフトウェアやサービス同士が機能やデータをやり取りするためのルール付きの窓口である。
- Web APIでは、リクエストを送り、レスポンスとしてJSONなどのデータを受け取ることが多い。
- API、APIキー、Endpoint、REST APIは関係しているが、それぞれ役割が違う。
- APIを使うと外部サービスの機能を組み込めるが、認証情報、料金、利用制限、エラー処理に注意が必要である。
- AIにAPI連携を依頼するときは、公式ドキュメントと具体的な仕様を渡し、出力を必ず検証する。
情報ソース
- MDN Web Docs - Introduction to web APIs
- MDN Web Docs - Web APIs
- MDN Web Docs - HTTP
- OpenAPI Initiative - What is OpenAPI?
より詳しくAIに聞いてみよう
- APIとは何かを、中学生でもわかるように説明してください。
- APIとWebページの違いを、初心者向けに具体例つきで説明してください。
- API、APIキー、Endpoint、REST APIの違いを整理してください。
- APIのリクエストとレスポンスとは何か、具体例つきで教えてください。
- 生成AIを自分のアプリに組み込むとき、APIがどう使われるのか説明してください。