Webサービスインスタンス
どのアプリケーションにも Web サービス コンポーネントを含めることができます。
Webサービスの作成にはプログラミング言語の種類は関係ありません。
この章では、PHP の SOAP 拡張機能を使用して Web サービスを作成する方法を紹介します。
SOAPにはNO-WSDLとWSDLという2つの動作モードがあります。
NO-WSDL モード: パラメータを使用して、使用する情報を渡します。
WSDLモード: WSDLファイル名をパラメータとして使用し、サービスに必要な情報をWSDLから抽出します。
例: PHP Web サービス
例を開始する前に、PHP に SOAP 拡張機能がインストールされているかどうかを確認する必要があります。 phpinfo を確認すると、SOAP 拡張機能がインストールされていることを示す次の情報が表示されます:
この例では、PHP SOAP を使用して単純な Web サービスを作成します。
サーバー Server.php ファイルのコードは次のとおりです:
<?php // SiteInfo 类用于处理请求 Class SiteInfo { /** * 返回网站名称 * @return string * */ public function getName(){ return "php中文网"; } public function getUrl(){ return "www.php.cn"; } } // 创建 SoapServer 对象 $s = new SoapServer(null,array("location"=>"http://localhost/soap/Server.php","uri"=>"Server.php")); // 导出 SiteInfo 类中的全部函数 $s->setClass("SiteInfo"); // 处理一个SOAP请求,调用必要的功能,并发送回一个响应。 $s->handle(); ?>
クライアント Client.php ファイルのコードは次のとおりです:
<?php try{ // non-wsdl方式调用web service // 创建 SoapClient 对象 $soap = new SoapClient(null,array('location'=>"http://localhost/soap/Server.php",'uri'=>'Server.php')); // 调用函数 $result1 = $soap->getName(); $result2 = $soap->__soapCall("getUrl",array()); echo $result1."<br/>"; echo $result2; } catch(SoapFault $e){ echo $e->getMessage(); }catch(Exception $e){ echo $e->getMessage(); }