ある会員管理のウェブアプリと連携したウェブサイトを構築する必要があり、そのウェブアプリではSOAPによるWebサービスを提供している。これまでWebサービスというと実装が楽という点でJSONを使うことが多かったので、SOAP通信に関してはいまいち不慣れ。どうしたものかとウェブアプリの説明を読み進むと、NuSOAPというツールキットを使ったサンプルが掲載されていた。NuSOAPを使うことで上位の実装はかなり簡単になりそう。というわけでNuSOAPの覚え書き。
公式サイト
SourceForge.net: NuSOAP – SOAP Toolkit for PHP – Project Web Hosting – Open Source Software
http://nusoap.sourceforge.net/
チュートリアル
以下のサイトにNuSOAPを使ったわかりやすいサンプルあり。以下に簡単なサンプルのコードだけ引用しておく。後半にはWSDLを使った実践的なサンプルもあるので、実際のコーディングにはかなり参考になる。
Simple Object Access Protocol
http://www.scottnichol.com/soap/index.html
Hello World サーバー側サンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php // Pull in the NuSOAP code require_once('nusoap.php'); // Create the server instance $server = new soap_server; // Register the method to expose $server->register('hello'); // Define the method as a PHP function function hello($name) { return 'Hello, ' . $name; } // Use the request to (try to) invoke the service $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); ?> |
Hello World クライアント側サンプル
1 2 3 4 5 6 7 8 9 10 |
<?php // Pull in the NuSOAP code require_once('nusoap.php'); // Create the client instance $client = new soapclient('http://localhost/phphack/helloworld.php'); // Call the SOAP method $result = $client->call('hello', array('name' => 'Scott')); // Display the result print_r($result); ?> |
一般的なSOAP通信方法
NuSOAPを使わない一般的な実装は以下サイトが参考になる。
【PHP】PHPでSOAP通信を行う方法
http://estpolis.com/2011/08/834.html