Configuring Data Services

Configuring Data Services

Platform 4.5+ が必要


データ サービスの構成


データ サービスは、主として nexaweb-data.xml ファイルで構成します。


また、nexaweb-sql.xmlファイルで statementHandlerDefinitions を定義することによって、SQL データ サービスを構成することもできます。

nexaweb-data.xml ファイルの構成


nexaweb-data.xmlファイルには次のセクションが含まれています。
 

コンフィギュレーション セクション

説明

requestProcessorDefinitions

すべてのサービス リクエストでグローバルに使用できる、データ サービス タイプごとに使用できる、あるいは dataRequestDefinitions で使用できるプリプロセッサおよびポストプロセッサを定義します。

globalProcessors

任意のデータ サービス タイプの全サービス リクエストにデータ サービスが適用される、プリプロセッサおよびポストプロセッサを示します。

dataServiceDefinitions

データ サービス プラグインを通じて使用可能なデータ サービス タイプを定義します。また、そのデータ サービス タイプを使用して、サービス リクエストごとにデータ サービス タイプのプリプロセッサおよびポストプロセッサを指定します。

dataRequestDefinitions

外部SQL または Web サービスタイプのデータサービスからデータを取得するための情報をサーバー上で定義します。


requestProcessorDefinitions


プロセッサは、データ リクエストまたはデータ結果を適切な構造にフォーマット設定します。


requestProcessorDefinitionsセクションで、グローバルプロセッサまたはデータサービスタイププロセッサとして、あるいは dataRequestDefinitions で割り当て可能なプリプロセッサおよびポストプロセッサを定義します。


requestProcessorDefinitionsセクションには次の要素が含まれています。
 

要素

説明

preProcessorDefinitions

プリプロセッサの定義を示します。

postProcessorDefinitions

ポストプロセッサの定義を示します。


processorDefinitionタグを使用して、preProcessorDefinition要素または postProcessorDefinition要素でプロセッサを定義します。


次の表に、processorDefinitionタグの属性についての説明を示します。
 

属性

説明

Class

プロセッサの実装クラスを指定します。

ID

プロセッサをグローバル プロセッサまたはデータ サービス タイプ固有のプロセッサとして、あるいは dataRequestDefinition で使用しているときに参照するために、プロセッサを一意に識別するための ID を指定します。


プロセッサでは次の実装クラスが使用されます。
 

プロセッサ タイプ

実装クラス

説明

プリプロセッサ

DataRequestPreProcessor

データ リクエスト情報を変更するためのインターフェイス。データ サービスは、関連付けられているデータ サービスへのデータ サービス リクエストを行う前にプリプロセッサを呼び出します。

ポストプロセッサ

DataRequestPostProcessor

クライアントに送信する途中に生データを変更するためのインターフェイス。データ サービスは、データ サービス結果をリクエスト元のクライアントに戻す前にポストプロセッサを呼び出します。


例:

 

<requestProcessorDefinitions> <preProcessorDefinitions> <processorDefinition id="a" class="DataRequestPreProcessor"/> <processorDefinition id="b" class="DataRequestPreProcessor"/> </preProcessorDefinitions> <postProcessorDefinitions> <processorDefinition id="1" class="DataRequestPostProcessor"/> <processorDefinition id="2" class="DataRequestPostProcessor"/> </postProcessorDefinitions> </requestProcessorDefinitions>

 


さらに、nexaweb-sql.xmlファイルと nexaweb-webservices.xml ファイルで statementHandlerDefinitionsを指定すると、これらのファイルで定義されている SQL 文、REST リクエスト、または SOAP リクエストのデータをフォーマット設定することができます。

globalProcessors


このセクションでは、全データ サービスタイプによってアクセスされる全データを適切な構造にフォーマット設定するために必要なプリプロセッサとポストプロセッサを示します。


globalProcessorsセクションには次の要素が含まれています。
 

要素

説明

preProcessors

グローバル プロセッサとして使用されるプリプロセッサを参照します。

postProcessors

グローバル プロセッサとして使用されるポストプロセッサを参照します。


processorタグを使用して、requestProcessorDefinitions 要素でグローバルに使用するプリプロセッサまたはポストプロセッサとして定義されているプロセッサの ID を指定します。


例:

 

<globalProcessors> <preProcessors> <processor="a"> </processor> </preProcessor> <postProcessors> <processor="1"> </processors> </postProcessors> </globalProcessors>

 

dataServiceDefinitions


nexaweb-data.xmlファイルの dataServiceDefinitions セクションには、外部データソースにアクセスするために使用可能なデータサービスタイプごとに 1 つのエントリが含まれています。


現在、Nexaweb では次のデータサービスタイプをサポートしています。
 

データ サービス タイプ

説明

SQL

Nexaweb アプリケーションが JDBC (Java Database Connectivity) を通じて外部データベースからデータを取得および更新する方法を提供します。

Web サービス

Nexaweb アプリケーションが REST SOAP を使用して Web サービスからデータを取得および更新する方法を提供します。


また、データ サービス タイプごとにプリプロセッサとポストプロセッサを指定して、そのデータサービス タイプを使用するすべての serviceRequestのデータをフォーマット設定できます。


dataServiceDefinitionsセクションには次の要素が含まれています。
 

要素

説明

processors

このデータ サービス タイプを使用する全リクエストの全プロセッサを示します。

preProcessors

このデータ サービス タイプを使用する全リクエストに使用されるプリプロセッサを参照します。

postProcessors

このデータ サービス タイプを使用する全リクエストに使用されるポストプロセッサを参照します。


processor タグを使用して、requestProcessorDefinitionsセクションSQL またはWeb サービスタイプのデータサービスを使用する全 serviceRequest プリプロセッサまたはポストプロセッサとして定義されているプロセッサの ID を指定します。


例:

 

<dataServiceDefinitions> <dataService id="sql" class="com.nexaweb.server.data.services.sqlDataService"> <processors> <preProcessors> <processor="b"> </processor> </preProcessor> <postProcessors> <processor="2"> </processors> </postProcessors> </processors> </dataService> </dataServiceDefinitions>

 

dataRequestDefinitions


このセクションでは、サーバーからデータ ソースへのアクセスに使用される dataRequestDefinitions を定義します。


dataRequestDefintion では、サーバー上で、serviceRequest の主要コンポーネントである、外部データへのアクセスに必要な情報を定義します。したがって、この情報はすべてクライアント UI ファイルで指定する必要はありません。また、引数を使用する serviceRequest を作成するために、dataRequestDefinitionを使用して dataRequestDefinition の主要コンポーネントを定義します。


次の表に、dataRequestDefinition の要素についての説明を示します。
 

要素

説明

必須

ID

この dataRequestDefinition を、serviceRequest での参照用に一意に識別するための ID を指定します。

必須

serviceResourceDefinition

関連付けられているデータ サービスを使用して実行する SQL 文、REST リクエスト、または SOAP リクエストを指定します。

dataRequestDefinition serviceResourceDefinition または serviceResourceReferenceを指定する必要があります。

serviceResourceReference

 

nexaweb-sql.xmlまたは nexaweb-webservices.xml ファイルで定義済みの、実行する SQL 文、REST リクエスト、または SOAP リクエストの ID を指定します。

dataRequestDefinition serviceResourceDefinitionまたはserviceResourceReferenceを指定する必要があります。

parameterMap

この接続の名前付きパラメータ マップを指定します。

省略可能

processors

この定義のデータのフォーマット設定に必要なプリプロセッサまたはポストプロセッサの ID を指定します。

省略可能


dataRequestDefinitions セクションには次の要素が含まれています。
 

要素

説明

processors

この dataRequestDefinitionのすべてのプロセッサを示します。

preProcessors

この dataRequestDefinition 使用されるプリプロセッサを参照します。

postProcessors

この dataRequestDefinition 使用されるポストプロセッサを参照します。


processor タグを使用して、requestProcessorDefinitions要素この dataRequestDefinition のプリプロセッサまたはポストプロセッサとして定義されているプロセッサの ID を指定します。


serviceResourceReference


次のようにserviceResourceDefinition を使用して dataRequestDefinition を指定します。

 

<dataRequestDefinition id="FlickrSearchRest"> <serviceResourceReference dataServiceId="WebService" serviceResourceId="searchFlickrParam" />

 


nexaweb-data.xmlファイルには、nexweb-webservice.xmlファイルで定義された WebService タイプのデータサービスリクエストsearchFlickrParamを参照するdataRequestDefinitionFlickrSearchRestが定義されています。


serviceResourceDefinition


次のようにserviceResourceDefinition を使用してdataRequestDefinitionを指定します。


 

<dataRequestDefinition id=”getDepartments”> <serviceResourceDefinition> <sqlStatement connectionId="engineering" xmlns=”http://nexaweb.com/service/data/sql”> <statement>SELECT * FROM department where dept=’’{0}’’</statement> </sqlStatement> </serviceResourceDefinition> <parameterMap> <parameterMapping name=”deptId”> <default>engineering</default> </parameterMapping> </parameterMap> </dataRequestDefinition>

 


この例では、dataRequestDefinitiongetDepartmentsに、SQL 文を使用して外部データソースにアクセスする serviceResourceDefinition が含まれています。SQL 文によって、dept 変数の値と一致する部門を選択します。ユーザーが値を指定しない場合は、parameterMapによって dept 変数のユーザー指定の値、deptID、または "engineering" のデフォルト値を渡すことができます。


サーバー上の nexaweb-data.xml ファイルで定義された dataRequestDefinition を、クライアント UI ファイルで定義済みの serviceRequest で使用します。この dataRequestDefinition を使用するには、次のようにクライアント UI ファイルで serviceRequest を作成します

<serviceRequest id=” getDepartmentRequest” dataRequestId=” getDepartments” xmlns=”http://nexaweb.com/service/data”> <parameters> <parameter name=”deptId”>{0}</parameter> </parameters> </serviceRequest>

serviceRequestgetDepartmentRequestで、dataRequestIDとしてdataRequestDefinitiongetDepartmentsを参照します。パラメータ deptId を指定し、このパラメータが受け取ったユーザー指定の値を getDepartments dataRequestDefinition で定義された deptID パラメータマッピングに渡します。