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で用いられるレスポンスのフォーマット(プロトコルやデータ形式)は様々です。一般に,SOAP,XML-RPC,RESTなどが用いられます。Web APIによっては,JavaScriptやAMFなども使われています。
RESTでデータをやり取りする場合は,表1のようなフォーマットがよく使われています。様々な形式がありますが,PHPなどの軽量言語を用いてプログラミングするときは,多彩なフォーマットごとに対応した関数が用意されています。特別なデータ形式でなければ,レスポンスのデータ処理に困ることはほとんどないでしょう。
Web APIを使うと,様々なデータを駆使したプログラムを簡単に実装できてしまいます。そのため,データ取得先となるサーバーの負荷を考慮せずに,プログラムを組んでしまいがちです。
多くのWeb APIでは,手軽に利用できる代わりに,1日のアクセス回数に制限が設けられています。例えば,Yahoo!検索APIは,1日に数千回までという制限があります。もちろん制限がない場合でも,プログラマのマナーとして,アクセス回数を必要最小限に抑えるべきでしょう。