Webサイトを通じて様々なサービスを展開している企業が,まるで先を争うかのように,無償で利用できるWeb APIを提供しています。例えば,米Googleや米Twitter,Yahoo! JAPAN,楽天,ぐるなび,リクルートなどがWeb APIを提供しています。Web APIを活用した第三者のサービスを通じ,より多くのユーザーに自社のWebサービスを使ってもらえるようにするためです。

 ここでは,広く利用されている定番Web APIを使いこなすための基礎知識を説明します。

HTTPベースで手軽にデータをやり取り

 Web APIが広く普及する以前にも,特定のサーバーにアクセスしてデータをやり取りする技術は存在していました。ですが,データを取得するまでの手続きがサービスごとに大きく違っていたり,やり取りの仕組みが複雑だったりしたため,広く普及するには至りませんでした。

 これに対してWeb APIは,HTTP(HyperText Transfer Protocol)をベースにデータをやり取りするのが特徴です。HTTPベースであるため,情報を提供するサーバーとのやり取りは,一般的なWebサイトへのアクセスと同等に行えます。

 もう少し詳しく説明しましょう。HTTPを使った一般的なWeb APIでは,単純なリクエスト/レスポンスによるデータ交換が中心となります。APIを公開している(情報提供先の)サーバーにログインしてデータを取得し,そのデータを編集して保存する,といった使い方の場合には,必要な回数ぶんのリクエストを行うことになります。また,セッション情報を維持する必要がある場合には,API側での対応が行われます。これは,一般的なWebサイトへのリクエストと変わりません。

 一方で,Web APIで用いられるレスポンスのフォーマット(プロトコルやデータ形式)は様々です。一般に,SOAPXML-RPCRESTなどが用いられます。Web APIによっては,JavaScriptやAMFなども使われています。

 RESTでデータをやり取りする場合は,表1のようなフォーマットがよく使われています。様々な形式がありますが,PHPなどの軽量言語を用いてプログラミングするときは,多彩なフォーマットごとに対応した関数が用意されています。特別なデータ形式でなければ,レスポンスのデータ処理に困ることはほとんどないでしょう。

表1●RESTでデータをやり取りする際の主なデータ形式
表1●RESTでデータをやり取りする際の主なデータ形式
[画像のクリックで拡大表示]
Web API利用時には回数制限に注意

 Web APIを使うと,様々なデータを駆使したプログラムを簡単に実装できてしまいます。そのため,データ取得先となるサーバーの負荷を考慮せずに,プログラムを組んでしまいがちです。

 多くのWeb APIでは,手軽に利用できる代わりに,1日のアクセス回数に制限が設けられています。例えば,Yahoo!検索APIは,1日に数千回までという制限があります。もちろん制限がない場合でも,プログラマのマナーとして,アクセス回数を必要最小限に抑えるべきでしょう。