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 サービスを構成するには、次の手順を実行します。
  1. SOAP サービスの ID を指定します。
  2. 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/soapurn:flickrSOAP リクエストのデフォルトの名前空間であり、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 ファイル内の serviceRequestdataRequestDefinition を参照します。)
クライアント UI
クライアント UI ファイル内の embeddedServiceRequest で直接 Web サービスリクエストを指定します。