rubyでSOAP-RPCサーバを作成するには、soap4rパッケージを導入します。このコンテンツではwsdlを提供するSOAP-RPCサーバのサンプルを作成します。
soap4rを使用して、SOAP-RPCサーバの作成手順は
となり、このステップを繰り返しながら完成させていきます。soap4rに添付のsampleファイルをみればわかりますが、wsdlを提供しないSOAP-RPCサーバも作成することができますが、インターネットに向けてサービスを提供するのであればWSDLは作成したほうが良いでしょう。
早速、WSDLの作成からはじめます。
WSDLの構成要素は下記のとおりとなります。
以下、具体的に提供するメソッドと対比させながらWSDLを作成していきます。サンプルとして価格を指定して指定した価格以下の商品名称を調べるサービスを作成します。サービスとして以下の3つのメソッドをを提供するものとします。
まず、外枠を記述し個別に中身を記述していきます。definitionsタグの属性値として以降のWSDL記述で使用する各種namespace(名前空間)を定義しています。
<?xml version="1.0" encoding="UTF-8"?>
<definitions
name="LovemacService"
targetNamespace="urn:LovemacService"
xmlns:typens="urn:LovemacService"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<!-- type定義 -->
</types>
<message>
<!-- message定義 -->
</message>
<portType>
<!-- portType定義 -->
</portType>
<binding>
<!-- binding定義 -->
</binding>
<service>
<!-- service定義 -->
</service>
</definitions>
以降、個々の要素の定義を具体的に記述してwsdlを完成させます。