API(Application Programming Interface)とは

APIは、Application Programming Interfaceの頭字語であり、2つのアプリケーションがデータをやりとりする際の媒介となるものです。APIは我々の日常生活に浸透しており、ほとんどのデジタルエクスペリエンスにおいて利用されていると言っても過言ではないでしょう。Facebook上での友人とのやり取り、ECアプリからの商品購入、インスタントメッセージの送信、スマートフォン上での天気のチェック等など、例をあげると切りが無いほどです。


APIを日常生活に例えるならば

スマホのアプリを立ち上げると、そのアプリはインターネットに接続し、サーバにデータを送信します。サーバはデータを取得した後、必要な処理を完了させてからスマホに返答します。アプリはサーバから受け取ったデータを解釈し、必要な情報を読みやすい形式で表示します。これがAPIであり、これらすべての処理がAPIを介して行われます。

身近な例を挙げてみます。

レストランでメニューを選んでいると想像してください。厨房は、あなたが注文した料理を用意する「システム」の一部です。ただし、このままではあなたの注文を厨房に伝え、料理をテーブルに届けるという媒介役が欠けています。そこでウェイター、つまりAPIが登場します。ウェイターはメッセンジャーであり、あなたのリクエスト(料理や調理方法)を、厨房に正しく伝えます。そしてウェイターはそれに応答(すなわち、あなたが注文した料理)し、テーブルまで運んできてくれます。

実際のAPIで考えてみましょう。オンラインで航空券の検索をしたことがある方は多いと思います。レストランのメニューと同様、都市、出発日、到着日など、さまざまな選択肢から選べます。航空会社のWebサイトでフライトを予約する場合、出発都市と日付、到着都市と日付、座席クラスなどを選択します。そして予約を完了するためには、Webサイトからデータベース(以下DB)にアクセスし、希望するフライト条件の在庫と料金を確認し、あなたに予約の可否を伝えることでしょう。

一方、楽天トラベルやじゃらん、Expediaなどの複数の航空会社のDBから情報を集約している旅行サイトの場合はどうでしょうか。

旅行サイトはAPIを使って航空会社のDBとやり取りします。APIは親切なウェイターのように、旅行サイトを通して空席情報や手荷物オプションなどのデータを、航空会社のDBに依頼するインターフェースです。航空会社のDBから応答を受け取ったAPIは、その情報を旅行サイトに返信し、ユーザは最新情報を旅行サイトで確認できるようになります。


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

あなたのスマホ情報はサーバに完全には公開されません。同様に、サーバ側のデータもスマホに完全に公開されることもないのです。お互いに必要なデータのみを、小さなパケットにして通信するだけです。例えばレストランの注文のように、あなたが食べたい料理をウェイターに伝えると、注文した料理が運ばれてきます。テイクアウトや特別注文であれば、追加料金などの条件をあなたに伝えることもあるでしょう。あなたが、その条件に合意すれば、料理が運ばれてくることになります。

APIが企業にもたらす価値は非常に高まっています。実際、多くの企業が、APIやAPIが実装されたアプリケーションから収益を得ています。Google、Salesforce、Amazon、SlackやWorkdayといった企業は、ほんの一例に過ぎません。多くの企業が、DXで先行していることは注目に値することでしょう。昨今、企業から注目されはじめている『APIエコノミー』とは、APIのマーケットプレイスのことです。


モダンAPI

長年にわたりAPIは、アプリケーションとの汎用的な接続インタフェースと見なされてきました。しかし最近、多くの企業が『モダンAPI』を採用しています。モダンAPIは、企業にとって有用な特徴を持っています。以下にその一部を紹介します。

  • モダンAPIは標準言語や設計(HTTPやRESTが体表的)に準拠している。多くの開発者にとって使いやすく、アクセスが容易かつ広く理解されています。
  • モダンAPIは製品として扱われる。特定のユーザ(モバイル開発者など)のために設計、文書化そしてバージョン管理がされています。そのためユーザは、メンテナンスとライフサイクルについて予測でき、エラーへの事前対処が可能になります。
  • モダンAPIは標準化が進んでいる。セキュリティやガバナンスの規律が大幅に強化されています。当然、パフォーマンスや拡張性のモニタリングや管理も実施可能です。
  • モダンAPIはソフトウェア開発ライフサイクル(SDLC)を有します。パッケージ・ソフトウェアと同様に、設計、テスト、ビルド、管理およびバージョン管理が行われます。利用とバージョン管理のための文書が豊富に用意されています。

モダンAPIを用いた新しいITアーキテクチャの構築手法については、『Whitepaper: API主導の接続性』をご一読ください。レガシーシステムとの接続やSOA(Service-Oriented Architecutre)の拙速な導入といった企業がDXで失敗しがちなプロジェクトの対案となるアプローチとして、多くのリーダー企業から支持されています。