ソフト開発

定番Web APIの使い方

日経ソフトウエア

Web APIとは何か

ITproは2大スマートフォン上で業務アプリケーションを開発する実践セミナーを、6月25日(Android)と7月30日(iPhone/iPad)の2日間にわたって開催します。パソコンと通信環境をお持ちいただければ、ハンズオンとして体験できます。

 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でデータをやり取りする際の主なデータ形式
[画像のクリックで拡大表示]
Web API利用時には回数制限に注意

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

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

 [2010/05/24]
出典:日経ソフトウエア 2010年3月号  pp.40-41
(記事は執筆時の情報に基づいており,現在では異なる場合があります)

この記事に対する読者コメント

コメントに関する諸注意 コメント投稿 コメント一覧 

今週の特集

【Windows 7ネットワーク大解剖】 ブラウジングとネットワーク探索とは?  スタート・メニューからマイネットワークやネットワークを開いていくと、ネットワーク上にあるパソコンが一覧表示されるブラウジング。今回は、このブラウジングがWindows 7でも動くしくみを調べてみよう。

>>目次

【改めて問う、仮想化の性能問題】 「仮想化=ストレージ共有型」とは限らない  サーバー仮想化において、最新のハードウエアを利用すれば「計算性能」の劣化を気にする必要がないことを前回述べた。今回は、「I/O性能」の観点からサーバー仮想化の性能問題を考えてみたい。

>>目次

【見えてきたクラウドの課題解決への道筋】 SLA共通指標化でクラウドの選択を可能に  ハイブリッド・クラウド環境を作り上げるには、多くの選択肢の中から適切なサービスを選ぶ必要がある。その際には、なんらかの共通指標があったほうが分かりやすい。ただ、その指標が十分でない。

>>目次

【定番Web APIの使い方】 Web APIを使ってみよう  例として楽天ウェブサービスに接続し、商品検索を行うプログラムを作成してみましょう。楽天ウェブサービスを利用するにはデベロッパーIDが必要です。楽天会員のユーザーIDがあれば、すぐに取得できます。

>>目次