解説はこれくらいにして,実際にWeb APIを使ってみましょう。

 利用例として,楽天ウェブサービスに接続し,商品検索を行うプログラムを作成してみましょう。XAMPPを使います。XAMPPはCドライブ以下にインストールしたと仮定して説明します。

 楽天ウェブサービスを利用するには,デベロッパーIDが必要です。楽天会員のユーザーID(アカウント)があれば,すぐに取得できます。楽天ウェブサービスのWebサイト(http://webservice.rakuten.co.jp/)にアクセスし,図3の画面の左側にある「ご利用方法」から「デベロッパーIDを取得」というリンクをクリックし,パスワードを入力するだけです。

 楽天会員ではない場合は,左側にある「楽天会員登録をする」をクリックして登録を済ませてください。ユーザー登録が終わったら,「ユーザ名」と「パスワード」を入力してデベロッパーIDを入手しましょう。

 デベロッパーIDを入手したら,次はいよいよプログラミングに移ります。まず,テキスト・エディタを開いて,リスト1のコードを記述します。リスト1の文字エンコーディングには,UTF-8を指定します。それから,rakuten_soap.phpという名前を付けて,Cドライブ以下に作成されたXAMPPフォルダ内のhtdocsに保存してください。保存できたらXAMPPのコントロールパネルからApache HTTP Serverを起動します。

リスト1●楽天ウェブサービスにSOAPで接続し商品を検索するプログラム
[画像のクリックで拡大表示]
図4●楽天のWebサイトにアクセスして商品を検索した結果の画面
[画像のクリックで拡大表示]

 Webブラウザを起動し,URLの欄に「http://localhost/rakuten_soap.php」と入力して,アクセスしてみましょう。SOAP形式のインタフェースを使い,楽天データベースから検索された商品の一覧が表示されるはずです(図4)。うまくいかない場合は,デベロッパーIDが間違っていないか,保存したコードの文字エンコーディングがUTF-8になっているか,などを確認してみてください。

PHPを利用してデータを交換する

 プログラムを解説する前に,PHPにおけるSOAPによるデータ交換について説明します。

 SOAPは,サービスを公開したり利用したりするための標準インタフェースです。PHPでは,SOAPによってデータをやり取りできる通信機能が拡張モジュールとして提供されているので,手軽に処理を記述できます。

 SOAPを使った通信では,WSDL(Web Services Description Language)が重要な役割を果たします。WSDLは,Webサービスがインターネット上のどこに存在し,データのやり取りにはどのフォーマットやどのプロトコルを使っているのか,といったWeb APIで提供されるパラメータや関数をXML形式で定義した言語です。WSDLで記述したXML文書のことをWSDL文書と呼びます。

 PHPなどの開発ツールでは,Web APIを提供する企業が用意したWSDL文書を読み込ませると,そのWeb APIに対応したスケルトン・コードが自動的に作成できたり,オブジェクトのプロパティやメソッドを生成したりします。作成するプログラムもWDSL文書を読み込み,自動生成されたメソッドを利用してWeb API(アクセスする楽天のAPI)にアクセスしています。

 詳しくリスト1のプログラムを見てきましょう。まず(1)で,楽天のWeb APIのWSDL文書を指定しています。これにより,(5)の$clientオブジェクトのoperationItemSearchというメソッドが自動生成され,利用できるようになります。(2)ではオプションとして渡す配列を定義し,(3)で(1)のWSDL文書へのURLと(2)のクライアントに渡すオプションを指定し,SOAPで通信するためのオブジェクトを生成しています。

 (4)はWeb APIに渡すパラメータの設定です。先ほど取得したデベロッパーIDを「********」の部分に代入してください。コードを見ればわかるように,「日経ソフトウエア」という文字で商品を検索しています。最後の「1.11」はAPIのバージョンです。

 (5)では,WSDLから自動的に作成されたメソッドを使って,商品の検索結果を$result変数に格納します。メソッドで呼び出した結果は,自動的にPHPのオブジェクトや配列に変換されて返されます。今回の例では,検索結果が$result変数のreturnプロパティに格納されているため,var_dump関数を使って,商品の一覧部分であるitemArrayプロパティの内容をわかりやすく表示しています。

この先は会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら