用語集

APIとは何ですか?

  このページはDeepLによって自動的に翻訳されました。 Switch to English

API(アプリケーション・プログラミング・インターフェース)とは、あるソフトウェアが別のソフトウェアと通信するためのルール群です。メニューのようなものと考えてください:アプリがデータやアクションを「注文」すると、APIが厨房(サービス)に何を調理すべきか、そしてどのように提供されるかを正確に伝えます。

APIはリクエストの送信方法とレスポンスの返却方法を標準化するため、異なるチームや企業によって構築されたシステムや、異なるプログラミング言語で書かれたシステムであっても、確実に連携して動作できます。

how-a-web-api-works

APIは実際に何をするのですか?

技術的な観点から見ると、APIはエンドポイント(呼び出し可能なアドレス)、使用可能なメソッド(データの取得にはGET、送信にはPOSTなど)、送信データの形式(多くの場合JSON)、そして返される内容(データとステータスコード、例えば「OK」を示す200や「Not Found」を示す404など)を定義します。この予測可能性こそがAPIの本質なのです。

APIとSDKとUIの違いは?

  • API:要求できる内容と応答の受け取り方に関する契約。
  • SDK(ソフトウェア開発キット):APIをラッピングし、既製のコード、サンプル、ユーティリティを提供することでAPIの利用を容易にするツールキット。
  • UI(ユーザーインターフェース):人間がクリックやタップする部分。APIはソフトウェア間向け、UIは人間向けである。

厳密に言えば、SDKなしでAPIを利用することは可能ですが、SDKを使用することで時間を節約し、ミスを減らせます。

APIには異なる「種類」があるのでしょうか?

はい、いくつかのスタイルがあり、それぞれにトレードオフがあります:

  • REST:現在最も一般的なウェブスタイル。リソースベースで、HTTPメソッド(GET/POST/PUT/DELETE)を使用し、通常はJSONを採用する。
  • GraphQL:クライアントは単一のリクエストで必要なフィールドを正確に指定できるため、データの過剰取得や不足を削減するのに最適です。
  • SOAP:厳格な契約を持つ古いXMLベースのプロトコルで、一部の企業では現在も使用されている。
  • gRPC:マイクロサービスで広く採用されている高性能バイナリプロトコル。
  • Webhooks:ユーザーが送信するリクエストではなく、プロバイダーが特定のイベント(配送通知など)が発生した際にユーザーに送信するコールバックです。
rest-api

APIを使うことは「価値がある」のか?

通常はそうです。すべてを自社で構築する代わりに、APIを活用すれば決済、地図、メール、検索、分析、AIなどの機能を簡単に組み込めます。これによりエンジニアリング時間を節約でき、信頼性が向上します(プロバイダーがサービスを更新し続けるため)。そしてチームは自社製品の独自性を高めることに集中できます。

トレードオフ:プロバイダーからレート制限、価格設定、稼働時間の依存関係を継承します。そのAPIなしでは製品が機能しない場合、冗長性を計画してください。

APIを利用するには特別な「キー」が必要ですか?

多くの場合。多くのAPIでは認証が必要であり、これによりプロバイダーは利用者を識別し、権限やレート制限を適用できます。一般的な手法には以下が含まれます:

  • APIキー:各リクエストに送信するシンプルなトークン。
  • OAuth:より安全な委任方式であり、ユーザーに代わってアクセスが必要な場合に最適です。
  • 署名付きリクエスト/JWT:暗号的に署名されたトークンで、有効期限があり、クレーム(あなたの身元や許可された操作内容)を保持できる。

可能な限り、鍵やトークンをパブリックリポジトリやクライアントサイドコードに含めないでください。

APIを呼び出すのに特別なツールは必要ですか?

そうでもない。多くのAPIでは、ウェブブラウザやcurl、その他のHTTPクライアントが使える。開発者はよくPostmanのようなツールや言語固有の組み込みライブラリを使ってリクエストを送信し、レスポンスを検査し、例を保存する。本番環境のアプリでは、使用する言語のHTTPライブラリやプロバイダーのSDKを使うことになる。

現実世界でAPIはどのような用途で使われているのか?

現代のほぼ全て:プロフィールを取得するモバイルアプリ、「Google/Appleでログイン」、決済処理を行うオンラインストア、同期するスマートホームデバイス、分析データを取得するダッシュボード、天気ウィジェットでさえも。ソフトウェアがデータをやり取りしているなら、裏側にはAPIが存在する可能性が高い。

client-server-architecture

よく目にする専門用語(とその意味)

  • エンドポイント:呼び出すURL(例: /users/123)。
  • リクエスト/レスポンス:送信した内容と返ってきた内容。
  • ペイロード/ボディ:リクエストまたはレスポンス内のデータ。
  • ステータスコード:数値結果(200 OK、201 作成済み、401 アクセス拒否、429 リクエストが多すぎます、500 サーバーエラー)。
  • レート制限:時間枠内で実行可能な呼び出し回数。
  • バージョン管理:新旧のAPI動作を分離する(例: /v1/ 対 /v2/)。
  • 冪等性:同じリクエストを複数回実行しても同じ結果が得られる(例:GET)。

関連コンテンツ