/
Web サービス (バージョン4.5+)
Web サービス (バージョン4.5+)
Platform 4.5+ が必要
Web サービスへのアクセス
Nexaweb 4.5 では、Nexaweb アプリケーションが Web サービスからのデータにアクセスすることを可能にするデータ サービスを提供します。
この Web サービスのデータ サービスでは、REST (Representational State Transfer) および SOAP (Simple Ojbect Access Protocol) リクエストをサポートしています。
Web サービスのデータサービスの構成
Web サービスのデータサービスのコンフィギュレーションファイル、nexaweb-webservices.xmlには、次のセクションが含まれます。
コンフィギュレーション セクション | 説明 |
webServiceDefinitions | このデータ サービスを通じて利用可能な Web サービスのタイプを定義します。 |
webServiceRequests | サーバー上で定義された REST および SOAP リクエストを示します。このリクエストは、アプリケーションが外部データにアクセスする際に参照によって使用できます。 メモ: Web サービスのリクエストは、クライアント UI の embeddedServiceRequest 内で指定することもできます。 |
webServiceDefinitions
webServiceDefinitionsセクションには次の要素が含まれています。
要素 | 説明 |
soapServiceDefinition | SOAP サービスの ID を定義します。この ID により serviceRequests がこのサービスを参照できます。 |
soapServiceDefinition 要素には、次の属性が含まれています。
属性 | 要素 | 説明 |
id | soapServiceDefinition | serviceRequests でこのサービスを識別するための ID を指定します。 |
wsdlLocation | soapServiceDefinition | SOAP サービスに使用する wsdl ファイルの場所を指定します。 |
例:
<webServiceDefinitions> <soapServiceDefinition ID = "soap", wsdlLocation="X" > </soapServiceDefinition> </webServiceDefinitions>
nexaweb-webservices.xmlファイルの webServiceDefinitions セクションで Web サービスを構成するには、次の手順を実行します。
- SOAP サービスの ID を指定します。
- SOAP サービス用の wsdl ファイルの場所を指定します。
webServiceRequests
このセクションには、サーバー上で定義され、dataDefinitionRequests の serviceResourceReference 要素で参照する、REST および SOAP リクエストがぞれぞれ含まれています。REST および SOAP リクエストは、クライアント UI ファイル内のembeddedServiceRequest にインラインで作成することもできます。
REST リクエストの作成
Web サービスのデータサービス タイプでは、REST アーキテクチャを使用して実装された Web サービスとの通信がサポートされます。
REST では HTTP を使用し、次のメソッドがサポートされています。
メソッド | 説明 |
DELETE | 指定されたリソースの場所でそのリソースを削除します。 |
GET | 指定されたリソースの場所でそのリソースを取得します。 |
POST | 指定されたリソースの場所に、渡されたデータを追加します。 |
PUT | 指定された場所のリソースを、渡されたデータで置き換えます。 |
REST リクエストは、<restRequest> タグを使用して指定します。
次の表に、<restRequest> タグの属性および子属性についての説明を示します。
要素 | タイプ | 説明 | 必須/省略可能 |
id | 属性 | dataDefinitionRequests の serviceResourceReference 要素、またはクライアント UI ファイル内のembeddedServiceRequestで参照されるときに、このリクエストを識別する ID を指定します。 | 必須 |
メソッド | 属性 | 必要に応じて、このリクエストが実行する、上記の HTTP メソッドのいずれかを指定します。 | 省略可能 メソッドを指定しない場合、restRequestではデフォルトで GET メソッドが使用されます。 |
url | 子属性 | REST リソースの場所を指定します。 | 必須 |
urlParameters | 子属性 | REST リソースに送信する追加情報を名前と値のペアのフォーマットで指定する urlParameters をすべて含みます。例: <urlParameter name="username">JR</urlParameter> | 省略可能 |
body | 子属性 | PUT または POST リクエストの本体部分の内容を指定します。 | 省略可能 |
値の置き換え
restRequestで使用している値は、リクエストに渡される引数、セッション変数、またはプリプロセッサによって置き換えることができます。
例:
<webServiceRequests> <restRequest id="searchFlickrParam"> <url>http://www.flickr.com/services/rest</url> <urlParameters> <urlParameter name="method">flickr.photos.search</urlParameter> <urlParameter name="api_key">ffdbbd159bdde999cc638c280377a8d1</urlParameter> <urlParameter name="text">{0}</urlParameter> <urlParameter name="per_page">25</urlParameter> </urlParameters> </restRequest> </webServiceRequests>
この例では、restRequest の searchFlickrParaが、次の追加パラメータを使用してURL http://www.flickr.com/services/rest に対して GET を呼び出しています。method=flickr.photos.search; api_key=ffdbbd159bdde999cc638c280377a8d1; text=a user supplied value; per_page=25.
SOAP リクエストの作成
Web サービスのデータ サービスでは、SOAP を使用した Web サービスとの通信がサポートされます。
SOAP は、HTTP を通じて Web サービスにアクセスするための XML ベースのプロトコルです。
SOAP リクエストは、<soapRequest> タグを使用して指定します。
<soapRequest> には、次の要素が含まれています。
- Web サービスを配置するための url
- セッションおよびログ情報を含めることができるオプションのヘッダー
- 実際のリクエストの詳細が含まれる本体セクション
次の表に、<soapRequest> タグの属性および子属性についての説明を示します。
要素 | タイプ | 説明 | 必須/省略可能 |
id | 属性 | dataRequestDefinitionまたはデータリクエストで参照されるときに、このリクエストを識別するための ID を指定します。 | 必須 |
endPointAddress | 子属性 | このリクエストを処理する Web サービスの URL の場所を指定します。 | 必須 |
soapActionURI | 子属性 | SOAP リクエストで使用するアクションの URI を指定します。 | 省略可能 |
header | 子属性 | SOAP リクエストのヘッダー部分を構成する要素を指定します。通常、前処理でリクエストに追加されます。 属性: name - データサービスが前処理でこの要素を識別および変更できるようにするために、要素に関連付ける名前。 nameSpace - 要素の名前空間を指定します。 | 省略可能 |
body | 子属性 | SOAP リクエストの本体部分を構成する要素を指定します。 属性: name - データサービスが前処理でこの要素を識別および変更できるようにするために、要素に関連付ける名前。 nameSpace - 要素の名前空間を指定します。 | 必須 |
例:
<soapRequest id="searchFlickrSoap"> <endPointAddress>http://api.flickr.com/services/soap/</endPointAddress> <body nameSpace="urn:flickr" localName="FlickrRequest"> <bodyElement name="method">flickr.photos.search</bodyElement> <bodyElement name="api_key">ffbbd159dde99cc678c193777c2d9</bodyElement> <bodyElement name="text">dog</bodyElement> <bodyElement name="per_page">25</bodyElement> </body> </soapRequest>
この例では、SOAP メッセージの searchFlickrSoap が、次の URL で指定されたサーバー上の Web サービスに移動します。http://www.flickr.com/services/soap。urn:flickrはSOAP リクエストのデフォルトの名前空間であり、localName に FlickrRequest が設定されています。メッセージの本体には、名前空間固有のメソッド flickr.photos.search が含まれ、api_key、テキスト、およびページごとの検索結果の数が指定されています。
サービスリクエストでの Web サービスリクエストの使用
使用する Web サービス リクエストを serviceRequest で指定するには、次の方法のいずれかを使用します。
場所 | 説明 |
nexaweb-webservices.xml | サーバーサイドの nexaweb-webservice.xmlコンフィギュレーションファイルの webServiceRequestsセクションで Web サービス リクエストを指定します。次に、nexaweb-data.xmlファイル内の dataRequestDefinition の serviceResourceReference でこのリクエストを参照します。(最後に、クライアント UI ファイル内の serviceRequest で dataRequestDefinition を参照します。) |
nexaweb-data.xml | nexaweb-data.xmlファイル内の dataRequestDefinition の serviceResourceDefintion で Web サービスリクエストを指定します。(次に、クライアント UI ファイル内の serviceRequest で dataRequestDefinition を参照します。) |
クライアント UI | クライアント UI ファイル内の embeddedServiceRequest で直接 Web サービスリクエストを指定します。 |