API(Application Programming Interface)とは

APIは、Application Programming Interfaceの頭字語であり、2つのアプリケーションがデータをやりとりする際の媒介となるものです。›Facebookのようなアプリを使用したり、インスタントメッセージを送信したり、スマートフォンで天気をチェックしたりするたびに、APIが使用されています。

APIの使用例

携帯電話でアプリケーションを使用すると、アプリケーションはインターネットに接続してサーバーにデータを送信します。その後、サーバーはそのデータを取得し、解釈して、必要なアクションを実行した後、データを携帯電話に送り返します。アプリケーションはその後、そのデータを解釈し、必要な情報を読みやすい方法で表示します。これがAPIです。これらのことがすべて、APIを介して行われます。

APIの働きをより分かりやすく説明するために、身近な例を見てみましょう。

レストランでテーブルに着いていると想像してください。テーブルには、注文を選べるメニューがあります。キッチンは、あなたの注文したものを用意する「システム」の一部です。ここで欠けているものは、キッチンに注文を伝え、料理をあなたのテーブルまで運ぶための重要なリンクです。ここでウェイター、つまりAPIが登場します。ウェイターはメッセンジャー(API)であり、あなたの要望や注文を受け取り、キッチン(システム)に何をすべきかを伝えます。その後、ウェイターが応答を持ち帰ります。この場合には、料理です。

それでは、実際のAPIの例を見てみましょう。オンラインで航空券の検索をされたことがある方は多いと思います。レストランと同様に、都市、出発日、到着日など、さまざまな選択肢があります。ある航空会社のWebサイトで航空券を予約するとしましょう。出発の都市と日付、到着の都市と日付、座席クラス、さらにその他の条件を選びます。予約を決定するには、航空会社のWebサイトからデータベースにアクセスし、希望する出発日に空席があるかどうか、またその費用を確認します。

しかし、航空会社のウェブサイトではなく、KayakやExpediaなど、航空会社の情報に直接つながっているオンライン旅行サービスを使用している場合はどうでしょうか。

この場合、旅行サービスはAPIを使って航空会社と交信します。APIは、機転が利くウェイターのように、オンライン旅行サービスからの受けたリクエストに応えるために航空会社のデータベースから情報を取得して戻し、座席や手荷物預けのオプションの予約リクエストを受け付けるインタフェースとなります。その後、APIがあなたのリクエストに対する航空会社の応答を受け取り、すぐにオンライン旅行サービスに送信し、必要な最新情報をあなたに表示します。

APIはセキュリティも備えている

あなたのスマートフォンのデータはサーバーに完全には公開されず、同様に、サーバーのデータもスマートフォンに完全に公開されることはありません。その代わりに、お互いに少量のデータパケットで通信することで、テイクアウトの注文のように、必要なデータだけを共有します。あなたが食べたい料理をレストランに伝えると、レストランはその対価を伝え、それで食事をすることができます。

APIの価値は非常に高まっており、多くのビジネスの収益の大部分を構成しています。Google、eBay、Salesforce.com、Amazon、Expediaといった大手企業は、APIから収益を得ている企業の一部にすぎません。「APIエコノミー」とは、このAPIの市場のことを意味します。

モダンAPI

長年にわたり、「API」は、一般的にアプリケーションへの汎用的な接続インタフェースと見なされてきました。しかし最近のモダンAPIは、非常に価値が高く、有用なものとして、以下のような特徴を備えるようになりました。

  • モダンAPIは標準(代表的なものはHTTPやREST)に準拠しているため、開発者にとって使いやすく、入手が容易で広く理解されている
  • モダンAPIは、コードではなく製品として扱われる。特定のユーザー(モバイル開発者など)が使用するために設計され、文書化され、そのメンテナンスとライフサイクルについてユーザーが一定の予測をできるようバージョン管理されている
  • 標準化が進んでいるため、セキュリティとガバナンスに関する規律が大幅に強化されており、監視と管理を通じて優れたパフォーマンスと拡張性を実現している
  • 最新のAPIには、製品化された他のソフトウェアと同様、設計、テスト、構築、管理、およびバージョン管理の独自のソフトウェア開発ライフサイクル(SDLC)がある。また、使用とバージョン管理のために豊富な文書が用意されている