APIとは。歴史を振り返る

APIはApplication Programming Interface(アプリケーション・プログラミング・インタフェース)の略語です。アプリケーションやシステムを開発するためのインタフェースといった意味になります。

今でこそWeb APIもAPIと呼ばれたりしますが、元々APIというのはデスクトップアプリケーションで用意されている仕組みでした。例えばExcelを外部プログラミングから呼び出してデータ入力や出力をさせたり、プリンタドライバを呼び出して印刷処理をするといった具合です。これらはWindowsやmacOS、LinuxといったOSの中で動作する仕組みです。つまりWindowsやmacOS、それぞれのOSの中でしか動かない仕組みです。

Web APIは多くの場合、通信する仕組みとしてHTTP/HTTPSを採用しています。HTTP/HTTPSはインターネット通信を行う上で標準的な仕組みで、プログラミングを行うためのライブラリも多数存在します。HTTP/HTTPSを採用することで、Web APIはOSという垣根を越えて使えるようになっています。

Webサービスからスタート

元々Web API(以下単にAPIとします)はWebサービスと呼ばれていました。XMLをデータフォーマットとし、SOAPというプロトコルを使っていました。サービス内容を定義するWSDLという言語を用いていました。主に大企業同士がシステム連携するための仕組みとして作られていましたが、Webサービス提供側、利用側双方の負担が大きい(複雑である)ためにあまり普及しませんでした。

その後、Web2.0という単語が登場した辺りから状況が変わってきます。情報発信系に限定されますが、RSSフィードというブログの情報配信フォーマットができ、これによってWebサイトの内容をRSSフィードで配信する風潮が広がっていきました。さらにdel.icio.usやはてなブックマークといったサービスが外部からデータの投稿を許可する仕組みを用意したり、ブログサービスにおいてもXML-PRCという仕組みで外部から投稿できる仕組みができあがりました。

普及する上での大きな役割を担ったのがTwitterでしょう。当初、Twitterは閲覧、投稿などの仕組みの殆どがAPIで公開されていました。これによってTwitterを利用する開発者たちがこぞってクライアントアプリケーションを開発したり、関連サービスを生み出しました。TwitterはAPIによって成長したサービスの一つと言えるでしょう。他にもflickr、Googleマップ、Amazonアソシエイトなど多くのサービスがAPIをビジネスの成長に利用してきました。

Facebookアプリの台頭

次に大きな変化だったのがFacebookが自社プラットフォームを公開したタイミングだったと言えます。これまではTwitterのAPIを利用したサービスであってもTwitterとは別サービスであるという認識がされていました。対してFacebookでは、Facebookの中にアプリが展開できるようになりました。これによってユーザはFacebookの中に留まったままサービスを利用でき、サードパーティーアプリケーション開発者はFacebookが持つ膨大なユーザベースを活用できました。この仕組みによって最も成長したのはZinga(ゲーム企業)です。FarmVilleという畑を耕すアプリが有名で、友人の助けを得ながら進める仕組みはソーシャルゲームという分野を築いた立役者だったと言えます。

ただしこの手法はユーザのプライバシーに関する問題を提起することにもなりました。キャンペーンに応募するためにFacebookページにいいねすると、そのユーザ属性が見えるようになったり、広告のトラッキングにも用いられるようになりました。ユーザに成り代わってメッセージを送るスパムまがいのアプリも登場しました。Facebookでは問題が起きた時に都度、仕組みを見直しています。現在ではFacebookアプリと言う仕組みはあまり用いられていません。また、プライバシーを保護するためにユーザ自身が自分の情報公開を制限できるOAuthというAPIが普及するきっかけにもなったと言えます。

スマートフォンアプリの普及が後押しに

さらにiPhone、Androidといったスマートフォンの登場もAPI普及に拍車をかけました。なぜかというと、スマートフォンは小さなデバイスなのでデータの保存領域はそれほど大きくありません。その結果、データをクラウドに保存し、それを参照する仕組みが必要になります。データの保存と参照について、APIを使うということです。アプリではデータを受け取った後、それらをUIとして表示しています。前述のWebサービス各社はもちろんのこと、今では殆どのスマートフォンアプリが何らかのAPIを用いているでしょう。

これによって自社アプリでしか使わない、プライベートAPIと呼べるような存在が増えています。自社アプリのデータを保存したり、参照するためだけに作られているAPIのことです。これまでWebサイトを提供する上ではHTMLをサーバから出力すれば良かったのですが、アプリではHTMLを使うわけではありません。そのため、アプリ向けにAPIを追加開発するケースも多くなりました。

しかしプライベートAPIではついセキュリティや認証周りが弱くなりがちです。アプリが出始めた当初ではゲームのチート行為も多く、サーバに不正なデータを送り込んだりすることも行われていました。プライベートAPIについても標準的なセキュリティ技術を用いたり、APIゲートウェイと言った仕組みを用いることでセキュリティレベルを引き上げることができるようになっています。

今やあって当たり前に

そうしたAPIの広がりがあり、今やAPIを公開しない理由がなくなっています。コンシューマ向けに限らず、ビジネス向けにおいてもAPIを公開することでうまくいっている事例が増えています。幾つかのメリットがありますが、まずビジネスのスピードがアップすることがあげられます。従来のすべて自前で開発する主義を捨て、APIを使うことで開発工数や期間の低減が実現できます。また、企業提携においてもAPIが活用されるようになっています。お互いがAPIを利用し合うことで、素早い提携が実現できています。FinTech周りでは企業提携し、提携した企業だけに限定してAPI公開が行われています。

API周囲のエコシステムも充実してきています。前述のAPIゲートウェイはその一つで、APIを持たない企業に対してAPIを提供したり、社内システムを安全に外部公開することができます。APIを提供する敷居を下げることで、自社データ活用の幅を広げられるようになります。

APIの技術はここ20年くらいで一気に発展しています。特にここ数年ではビジネスにおける活用に注目が集まっています。ぜひAPIを公開、利用してビジネスを拡大させてください。

© NTT Communications Corporation 2014