APIとは?APIの仕組み (詳細版)
APIが何であるかを知らない人がいるかもしれません。また、何をするものなのか知らない人もいると思います。しかし、APIは毎日、あなたに豊かなデジタル体験を提供するために舞台裏で働いているものです。オンラインで購入した映画のチケットも、Facebookでシェアしたブロガーの料理レシピも、予約した飛行機も、すべてAPIのおかげです。本記事では、APIとは何か、どのように機能するのか、そしてAPIの種類を紹介していきます。
1. APIとは?
API(Application Programming Interface)とは、ソフトウェア間のインターフェースのことです。APIにより、アプリケーションは安全かつ標準化された方法で相互に通信し、ユーザーの介入なしに要求された情報や機能を提供することができます。
2. APIの仕組み
APIとは、ソフトウェアコンポーネントが簡単なコマンドで互いに通信し、対話できるようにするための定義とプロトコルのセットです。APIはメッセンジャーの役割を果たし、あるアプリケーションから別のアプリケーションにリクエストを送り、リアルタイムでレスポンスを返します。
サーバー(リソースを提供するアプリケーション)がクライアント(要求するアプリケーション)から要求されたことを実行できる場合、APIは要求されたリソースまたはミッション達成に大別されるステータスコードを持ち帰ります。サーバーがクライアントの要求したことを実行できない場合、たとえばクライアントが要求したリソースが存在しないか、アクセスする権限を持っていない場合、APIはエラーメッセージを送り返します。
このようにサーバーへのアクセスを制御することは重要です。APIは、プログラムの情報やコードをすべて提供するのではなく、外部のユーザーが利用できるようにしたデータのみを提供します。
APIの呼び出し
APIの呼び出しは、クライアントアプリケーションがサーバーのAPIにリクエストを送信するプロセスです。APIの呼び出しは、APIがサーバーからデータを取得しクライアントに送り返すときなど、リクエストが送信された後に発生するすべての処理も含まれます。
リクエスト方法
ほとんどのクライアントは、サーバーに基本的な機能を実行させることを望んでいます。これらのリクエストはURLとして記述することができ、クライアントとサーバー間の通信はHTTP(Hypertext Transfer Protocol)の規則によって管理されています。サーバーに対する最も基本的なリクエスト方法は、次の4つです。
- GET:リソースを取得する
- POST:新しいリソースを作成する
- PUT:既存のリソースを編集または更新する
- DELETE:リソースを削除する
もう少し詳しく説明いたします。APIがどのように機能するかは、よくレストランで料理を注文することに例えられます。あなたがクライアント、ウェイターがAPI、シェフがサーバーを表しています。あなたはメニューを見て、料理を選び、ウェイターに注文します。注文はウェイターによってシェフに届けられます。シェフはそれを実行します。 そして、ウェイターが料理を運んできて、あなたは自分で作らなくてもいい分、より一層料理を楽しむことができます。
しかし、来店する人数が増えて、収容するスペースが足りなくなったとします。このようなことが、人気店になってから続出したとします。そこで登場するのがAPIキーです。
APIキーとは?
APIキーは、APIへの呼び出しを認証するために使用される一意の識別子です。キーは、クライアントを識別するための文字列と数字で構成されています(これは、リクエストを行うアプリケーションまたはサイトであることを注意すべきです)。キーは、クライアントのアクセス権限に基づき、そのリクエストを許可または拒否し、使用と請求の目的で行われたリクエストの数を追跡することができます。
この方法は、認証トークンほど安全ではありませんが、ユーザー名とパスワードのみを必要とする基本認証と比較すると、いくつかの利点があります。
キーを持っている人のみアクセスを制限することで、企業はAPIへのコール数を制御し、特定の信頼できるクライアントグループのみがサーバーのリソースにアクセスできるようにします。
先ほどの例の続きで、APIキーを予約、APIを高級レストランに例えて考えてみましょう。厨房が全ての客に十分かつ効率的にサービスを提供できるように、消費者に予約を義務付けることで定員数を維持することができます。同様に、APIキーを持つクライアントのみがAPI経由で利用可能なリソースにアクセスし利用できるようにすることで、ソフトウェアの安全な利用を保証し、入ってくるリクエストの数を管理することができます。
3. APIの種類
APIは、その対象者と範囲により分類することができます。開発者が扱うAPIには、主に4つのタイプがあります。
- プライベートAPI:効率性と透明性を高めるために、企業内部のチームのみが利用できるAPIです。社内の開発者は必要に応じてこれらのAPIを使用できますが、サードパーティの開発者は使用できません。
- パートナーAPI:これらのAPIは、APIを提供する企業とビジネス上の関係を持つ個人と共有されます。自社のリソースに誰がアクセスし、そのリソースがどのように使用されるかを管理したいため、ある企業はパートナーAPIを使用します。
- オープンAPI:オープンAPIは、しばしばパブリックAPIとして知られ、一般にアクセス可能です。無料で利用できるオープンAPIもあれば、利用状況に応じて段階的に料金を支払う必要があるオープンAPIもあります。
- コンポジットAPI:これらのAPIでは、呼び出しやリクエストをグループ化し、複数のサーバーから1つの統一されたレスポンスを取得することができます。多くのアプリケーションからデータが必要な場合、複合APIが使われるかもしれません。あるいは、5つの別々のAPIコールを連続して行う代わりに、コンポジットAPIを使用して1つのAPIコールを行うこともできます。
4. APIの活用例
スマートフォンを持っていたり、SaaS(Software-as-a-Service)のウェブアプリを使っていたりすると、本日すでに1つ以上のAPIを使っている可能性が高いです。人々が日常的に使う最も一般的なAPIのいくつかを以下で紹介いたします。
4.1. Google Maps API
毎月10億人以上の人々がGoogle Mapsアプリを利用し、自分の周りの世界をナビゲートしています。しかし、Google Maps APIは、他の企業が自分でゼロからその機能を開発することなく、Google Mapsの機能を自社のソフトウェアやサービスに統合することも可能にしています。
例えば、UberはGoogle Maps APIを利用し、ドライバーとライダーがお互いを見つけ、交通の最短ルートを計画し、乗り合いを最適化できるようにしています(実際、Uberのプラットフォームの多くは、カスタムコードではなく、APIコールで構築されています)。
4.2. Weather API
現在、多くの気象APIが提供されており(無料・有料の両方)、開発者は、それらのサービスを自分で一から構築しなくても、アプリケーションやウェブサイトなどに気象情報を追加するために利用することができます。例えば、National Weather Serviceは、「開発者が重要な予測、警報、観測、およびその他の気象データにアクセスできるようにする」APIを持っています。
4.3. Spotify API
3億4500万人以上が音楽を聴くためにSpotifyを利用しており、Spotify APIにより、開発者はSpotifyの音楽データや再生コントロールなどのサービスを外部アプリケーションに統合できるようになります。例えば、楽曲認識アプリのShazamは、Spotify APIを利用し、ユーザーがShazamで保存した楽曲をSpotifyで見つけられるように(例えば、お気に入りのプレイリストに追加できるように)しています。
まとめ
本記事を読み、APIとは何か、APIがどのように機能するかについて、明確に理解出来たでしょう。APIが現代のソフトウェアにとって画期的な存在に違いません。APIエコノミーの台頭により、ソフトウェア会社はこれまで何ヶ月も何年もかけてコーディングしていたような重要な機能を迅速に組み込むことができるようになっただけでなく、エンドユーザがAPIコールを通じてベストオブブリードのアプリを接続し、それらの間で自由にデータを流すことができるようになりました。
現在または今後のプロジェクトにおいて、API経験のある開発チームやチームエクステンションを採用する必要がある場合は、CMC Japanにご相談ください。2200名以上の認定エンジニアが、お客様の計画について調査し、効果的に実行するためのお手伝いをさせていただきます。