いま,Webの世界は大きく変わろうとしています。検索エンジンはどんどん進化し,ブログやSNS(Social Networking Services)といった新しいアプリケーションが登場して,Webの用途は広がり,便利になっています。

 プログラマにとってのWebの姿も大きく変わっています。従来,Webでプログラミングといえば,サーバーで動作するWeb/DBアプリケーションの構築か,JavaScriptで動的なWebページを作成することを指すのがほとんどでした。最近はこれに加えて,Web上に散在するAPI(Web API)を利用するプログラミングが流行しつつあるのです。

インターネット上のサービスを
自分のプログラムに組み込める

 「API」と言えばOSの機能をプログラムから利用するための窓口というイメージがあると思います。Web APIとは,WebにおけるAPI,つまりWeb上にあるサービスをプログラムから利用するための窓口とも言うべきものです。従来のプログラミングでは,OSやフレームワークが提供する機能を組み合わせてプログラムを作っていました。Web APIを利用するプログラミングでは,そのイメージが変わります。OSやフレームワークが提供する機能に加えて,インターネット上のサービスも自分のプログラムに取り込めるようになるのです(図1)。

図1●従来のプログラミング・スタイルと,Web APIを利用したプログラミング・スタイルの違い。インターネット上のWeb APIを利用すれば,ローカルのパソコンだけでは実現できない様々な機能を簡単に利用できるようになる
図1●従来のプログラミング・スタイルと,Web APIを利用したプログラミング・スタイルの違い。インターネット上のWeb APIを利用すれば,ローカルのパソコンだけでは実現できない様々な機能を簡単に利用できるようになる

 これは,Web上に散在する膨大なデータを自由に活用できるということを意味します。例えば,書籍の情報を調べるプログラムを自作したいと思っても,書籍データをどう集めるかというところがネックになります。しかし,後述するようにAmazonやGoogleが提供するWeb APIを使えば,自分のプログラムにWeb検索機能を簡単に組み込めます。しかも,それが非常に手軽にできる,というところがスゴイのです。

 Web APIと言っても,その提供形態は一つではありません。多くは,一般に「Webサービス」と呼ばれる形式,つまりSOAP(Simple Object Access Protocol)形式になっていますが,最近はREST(REpresentational State Transfer)という,より単純な形態で提供しているAPIも増えてきました。例えば,AmazonはSOAP,REST両方の形式でAPIを提供しています。また,Googleが提供する地図情報サービス「Google Maps API」などは,Webサービスの形式ではなく,JavaScriptのライブラリとして提供されています。Webページを作成するための技術を応用できるので,Webサービスよりは気軽に挑戦できるでしょう。とはいえ,SOAPやRESTのAPIを利用することもそれほど難しくはありません。

個人が作ったサービスでも
世界中で評価されるチャンスがある

 今のところ,Web APIを提供している代表的な企業としては,Amazon,Google,Yahoo!,はてななどが挙げられます(表1)。ほかにも,Web上で先進的なサービスを提供している企業が続々とWeb APIを公開しています。これらのAPIはインターネットを通して世界中に公開されており,しかもほとんどが無料で使えます。

表1●国内で利用可能な主なWeb APIとその概要
表1●国内で利用可能な主なWeb APIとその概要

 企業が無料でAPIを公開する狙いは,主に二つあります。まず,自社のWebサイト利用者が増えること。API経由とはいえ,自社のサービスを利用してもらえば,いずれWebサイト利用者の増加につながるという考えです。例えばAmazonの場合は,全世界のプログラマがAPIを使ってAmazonの販売機能を利用してくれれば,顧客がどんどん増えるというわけです。

 デジタルガレージ,ぴあ,カカクコムの3社合弁で設立した企業であるWeb2.0で,技術統括マネージャーをしている佐藤匡彦氏は「Web APIを利用するプログラマはWebユーザーの中でも先進的な存在。先進的なユーザーが利用しているサービスというイメージを得られれば,その会社にとって大きなイメージアップになる」と語っています。前述のはてなも「Webサービスを積極的に提供することで,デベロッパたちに面白い,便利だと評価されることが,結果的により広い世界ではてなは面白いと評価されるサービスにつながる。また,はてなのデータをより多く流通させることで,目に見えないプロモーションにつながる」(同社広報部)と考えています。

 企業がWeb APIを提供するもう一つの狙いは,全世界のプログラマの力を借りることです。自社では思いつかないような新サービスが,プログラマの間から登場してくることを期待しているのです。無料で使える道具を提供して,プログラマに新しいサービスを作ってもらおうと考えているわけです。

 個人の力で面白いサービスを作るといったって限界があるじゃないかと考える方もいらっしゃるでしょう。しかし,Webは世界中につながっています。個人でも世界的に有名なサービスを作ることは不可能ではありません。例えば,ソーシャル・ブックマーク・サービスのはしりとして有名な「del.icio.us」(図2)は,もともと個人が運営していたサービスです(2005年12月に米Yahoo!が買収)。

図2●ソーシャル・ブックマーク・サイト「del.icio.us」。自分自身のブックマーク情報をWeb上に公開して,他人と共有できる
図2●ソーシャル・ブックマーク・サイト「del.icio.us」。自分自身のブックマーク情報をWeb上に公開して,他人と共有できる
[画像のクリックで拡大表示]

Web APIを集めれば
自分でサービスを作る必要はない

 「そうは言っても,新しいサービスをゼロから作るのでは膨大な手間と時間がかかってしまいそう」――確かにそうですね。しかしそれなら,あちこちのサイトにあるサービスやWeb APIを集めてくればいいのです。そして,あとはちょっとしたアイデアを加えれば個人でも簡単に新しいサービスを作れます。このように,いろいろなサービスを集めて新しいサービスを作り上げることを「マッシュアップ」と呼びます。現在,Webの世界を見渡すと,あちこちにマッシュアップで作ったアプリケーションが見つかります。

 中でも面白いのが「Qooqle」です(図3)。このサイトは,Amazon,Google,Yahoo!,はてなの4社が提供する検索用のWeb APIを活用しています。テキストボックスに検索語を入力しはじめると,入力した言葉からはじまるキーワード候補が表示されます(図4)。これは,Googleの「Googleサジェスト」サービスを利用しています。検索語を決定すると,Yahoo!の検索エンジンでその言葉を検索し,検索結果を表示します(図5)。表示するときは,はてなブックマークのデータも取得して,ブックマーク数の多さも表現します。表示する文字が大きいほど,ブックマーク数が多いことを意味します。さらに,Amazonで書籍データを検索し,関連する書籍の表紙データを検索結果の上に並べてくれます。Qooqle自身は何の検索エンジンも備えていませんが,Web API経由で検索機能を借りてくれば,アイデア次第でこんなにも多くの機能を持つ検索サイトを作れるのです。

図3●様々な検索機能を統合したサイト「Qooqle」
図3●様々な検索機能を統合したサイト「Qooqle」
[画像のクリックで拡大表示]

図4●Qooqleのテキストボックスに検索語を入力しはじめると,キーワード候補が現れる
図4●Qooqleのテキストボックスに検索語を入力しはじめると,キーワード候補が現れる
[画像のクリックで拡大表示]

図5●検索結果を表示するときは,はてなブックマークの件数の多さに応じて文字の大きさを変えている
図5●検索結果を表示するときは,はてなブックマークの件数の多さに応じて文字の大きさを変えている
[画像のクリックで拡大表示]

 Web APIの利用パターンはほかにもあります。あちこちからサービスを集めるだけでなく,すでにあるWebサイトの機能を整理して,自分の使いやすいように作り直すというパターンです。例えば,「amazlet.com」というWebページがあります(図6)。このページはAmazon.co.jpのWebページのレイアウトを再構成したものに見えます。実際,Amazon.co.jpと連携しており,このページから商品を発注すれば,Amazon.co.jpから商品が届きます。このWebサイトはAmazonが提供するWeb APIを使って構築したものです。

図6●「amazlet.com」はAmazon.co.jpの機能を再整理したサイト
図6●「amazlet.com」はAmazon.co.jpの機能を再整理したサイト

 このページにはさらに面白い特徴があります。Amazon.co.jpの「アフィリエイト」の利用を支援する機能です。

 Amazon.co.jpで取得したアフィリエイトIDを登録してツールをセットアップすると,「amazlet it!」というページへのリンクが現れます(図7)。これを「お気に入り」に設定すると準備完了です。Amazon.co.jpで任意の商品の紹介ページを開いて,そこでお気に入りに入っている「amazlet it!」をクリックすると小さいウィンドウがポップアップで現れます(図8)。このウィンドウには,その商品を紹介する情報と,その情報を記述するためのHTML文の断片が見えます。このHTML文の断片をWebページやブログに貼り付けるだけで,アフィリエイトの仕組みを利用できるというわけです(図9)。

図7●amazletツールを設定するとリンクが現れる。これをブックマークし,目的の商品の情報ページを表示してこのリンクをクリックする
図7●amazletツールを設定するとリンクが現れる。これをブックマークし,目的の商品の情報ページを表示してこのリンクをクリックする

図8●ポップアップで現れるウィンドウには商品情報のほかに,商品情報ページを作るためのHTML文が表示される
図8●ポップアップで現れるウィンドウには商品情報のほかに,商品情報ページを作るためのHTML文が表示される
[画像のクリックで拡大表示]

図9●ポップアップ・ウィンドウに表示されたHTML文をコピー&ペーストすれば,簡単にアフィリエイトを始められる
図9●ポップアップ・ウィンドウに表示されたHTML文をコピー&ペーストすれば,簡単にアフィリエイトを始められる