はじめに
我々はWebサービスやアプリを利用するにあたって、意識せずとも「API」の恩恵を受けています。今回はそのAPIについて図を交えて解説させていただきます。
解説
APIとは
APIは "Application Programming Interface" の略です。
簡単に言うと、「異なるソフトウェア同士がスムーズに連携するための窓口のようなもの」です。
この仕組みは、まるで旅行先で言葉の違う人同士が通訳者を介して会話する様子に似ています。
以下の図を用いて、APIについて具体的に見ていきましょう。
※今回の解説では、APIを「通訳者」に例えていますが、これはAPIの働きをイメージしやすくするためのものです。実際のAPIが常にデータの整形や翻訳を行っているわけではないことをご留意ください。
あなた(あなたのソフトウェア): 現地の言葉が分からないけれど、現地の人(別のソフトウェア)と話して情報を知りたい。
通訳者(API): あなたの言葉(リクエスト)を現地の言葉に翻訳し、相手に伝えます。そして、相手の言葉(応答)をあなたの言葉に翻訳して返してくれます。
現地の人(API提供側のソフトウェア): 現地の言葉しか話せませんが、通訳者がいればあなたの要望を理解し、適切な情報を提供できます。
1. あなたからのリクエスト(「あなたのソフトウェア」が求める情報)
まず、あなた(あなたのソフトウェア)は、「おすすめのレストランを教えてください」と、通訳者(API)に依頼します。これは、あなたのアプリが「この情報が欲しい」「この機能を使いたい」と、APIにリクエストを送る最初のステップです。
2. 通訳者(API)による翻訳(リクエストの送信)
あなたの言葉(あなたのソフトウェアが理解する形式のリクエスト)は、そのままでは現地人(API提供サーバー)には伝わりません。そこで、通訳者(API)がそのリクエストを、現地人(API提供サーバー)が理解できる「共通の言語」や「ルール(APIの仕様)」に翻訳し、「What restaurants do you recommend?」と尋ねます。
3. 現地人(API提供サーバー)からの応答
現地人(API提供サーバー)は、通訳者から受け取った「翻訳されたリクエスト」を理解し、自分の持っている情報の中から最適な答え(データや処理結果)を見つけ出します。図では「My house is the recommended restaurant.(私の家がおすすめのレストランです)」と答えています。これは、API提供サーバーがリクエストを処理し、結果を返す段階です。
4. 通訳者(API)による再翻訳と情報の返却(レスポンスの受け取り)
現地人(API提供サーバー)からの応答も、そのままではあなた(あなたのソフトウェア)には理解できません。再び通訳者(API)が、その現地語の応答をあなたの言葉(あなたのソフトウェアが理解できる形式)に翻訳し、「ワイの家がおすすめのレストランやで😅だそうです」とあなたに伝えます。これが、APIからの「レスポンス」を受け取る段階です。
まとめ
このように、APIはソフトウェア同士がスムーズにコミュニケーションを取るための「窓口」であり「通訳者」として機能します。異なるソフトウェアの間に入り、それぞれが話す「言語」を翻訳し合うことで、円滑な情報交換や機能連携を可能にしているのです。
このAPIがあるからこそ、我々は他のサービスの複雑な内部構造を知らなくても、必要な機能や情報を簡単に利用できるということですね。
APIを使うメリット
- 開発の効率化: ゼロから全てを作る必要がなく、既存の機能やサービスを組み合わせて利用できるため、開発の手間が省けます。
- 機能の拡充: 自分では提供できないような高度な機能(地図、決済、SNS連携など)を、APIを通じて簡単に自分のサービスに組み込めます。
- サービス連携: 異なるサービス同士が連携し、より便利で豊かなユーザー体験を提供できます。例えば、フリマアプリで決済にクレジットカード会社のAPIが使われたり、SNSで他のサイトの記事を共有する際にSNSのAPIが使われたりします。
APIを使うデメリット
メリットを紹介したのでデメリットも紹介しときます。
- 依存リスク: API提供元の都合(サービス終了、仕様変更、料金変更など)で、自分のサービスが影響を受ける可能性があります。特定のAPIに深く依存すると、他の選択肢に乗り換えにくくなる「ベンダーロックイン」も起こり得ます。
- コストと性能: 無料枠を超えると料金がかかることがあり、利用が増えると費用も増大します。また、API提供側の負荷やネットワーク状況によって、あなたのサービスの応答が遅くなる可能性もあります。
- セキュリティと安定性: APIを介したデータのやり取りでは、情報漏洩や不正アクセスのリスクがあります。API提供元が停止すると、あなたのサービスも動かなくなる可能性があります。
- 学習と保守の手間: APIごとに使い方を学ぶ必要があり、問題発生時のデバッグや、複数のAPIのデータ形式を合わせる作業が発生することもあります。
おまけ
身近にあるAPI
- Googleマップ: Webサイトやアプリに地図を表示する際、GoogleマップのAPIを使っていることが多いです。経路検索や場所の表示など、Googleが提供する高度な地図機能を簡単に組み込めるため、多くの企業が利用しています。
- SNS連携: 「〜でログイン」や「〜でシェア」といったSNS連携機能は、各SNSが提供するAPIを利用しています。これにより、ユーザーは複数のサービスで同じアカウントを使い回したり、簡単に情報を共有したりできます。
- 決済サービス: オンラインショップでクレジットカード決済をする際、裏側では決済代行会社のAPIが使われています。セキュリティの高い決済機能を、個々のショップがゼロから開発することなく導入できるのはAPIのおかげです。