Documentation

データプロバイダーの概要

データプロバイダーは、Formsアプリケーションで使用できるデータを提供します。 RESTデータプロバイダーはFormsアプリケーションに含まれています。 これにより、 RESTウェブサービス からデータを使用し、フォームフィールドを自動入力することができます。

よくある例としては、RESTデータプロバイダーを使用して、[リストから選択]フィールドのオプションに国のリストを入力することが挙げられます。

登録済みのJSON Webサービス

データソースの中には、 restcountries.eu データプロバイダーのようなサードパーティーのソースから取得するものもあります。 また、Liferay DXPには独自に登録されたWebサービスがあります。 ローカルサーバーを実行している場合は、 http://localhost:8080/api/jsonws でリストを参照してください。 国のリストを入力する場合、2つのget-countries JSON Web サービスがありますが、どちらでも動作します。 [Invoke] をクリックすると、結果が生成されます。

警告

ローカルテスト環境でLiferayのWebサービスとデータプロバイダを使ってテストするには、ローカルネットワークアクセスを有効にする必要があります。 ローカルネットワーク上のデータへのアクセスの有効化を参照してください <./using-the-rest-data-provider-to-populate-form-options.html#enabling-access-to-data-on-the-local-network> __。

Result] タブには、次のアフガニスタンのレコードのように、JSON構文を使用した国のリストが表示されます。

[
  {
    "a2": "AF",
    "a3": "AFG",
    "countryId": "20",
    "idd": "093",
    "mvccVersion": "0",
    "name": "afghanistan",
    "nameCurrentValue": "Afghanistan",
    "number": "4"
  },
    ...

Webサービスから選択可能なフィールドを選択します。 get-countriesの場合は、適切に大文字で表記された国の完全な名前が含まれているため、ほとんどの場合nameCurrentValueとなります。

[URL例]タブで、データプロバイダーの作成時に使用するURLを探します。 これは、get-countries JSON Web サービスにアクセスする際に生成されるものと同じです。 ユーザーは、登録されているJSON Web サービスのURLを、これと同じ手順で見つけることができます。

[URL例]タブには、対応するJSON Webサービスが表示されます。

データプロバイダー設定リファレンス

フォームアプリケーションからデータプロバイダーを設定するには、 [サイト管理] → [コンテンツ & データ] → [フォーム] へ行きます。 [データプロバイダー] タブをクリックし、(Add icon)アイコンをクリックして開始します。 データプロバイダーを設定する際には、いくつかのフィールドに入力する必要があります。

このデータサービスでは、国を返します。

URL

内部または外部のRESTサービスのエンドポイントのURLを入力します。 上記の例では、https://restcountries.eu/にあるRESTサービスを示していて、このサービスにはregionで国を検索するエンドポイントが含まれています。

https://restcountries.eu/rest/v2/region/{region}

データプロバイダーのURLには、パスパラメーターとクエリパラメーターの2種類のパラメーターを指定できます。

パスパラメーターは、REST Webサービスを呼び出すURLの一部で、https://service-url.com/service/{path_parameter_name}というパターンを使用して追加されます。

たとえば、 restcountries.euサービスのregionエンドポイントのパスパラメーターは{region}です。 パスパラメーターはURLの必須部分なので、URLのパスパラメーターに一致する [パラメーター] フィールド値を持つ入力(下記参照)を指定してください。

クエリパラメーターは、サービス呼び出しの出力を絞り込むためのURLの補完的な部分で、?query_parameter=query_parameter_valueというパターンに従います。

https://restcountries.eu/rest/v2/all?fields=capital

パスパラメーターとは異なり、クエリパラメーターはオプションです。

ユーザー名とパスワード

必要に応じて、REST Webサービスへの認証に使用する認証情報を入力します。

Cache data on the first request

データがキャッシュされている場合は、RESTサービス・プロバイダーへの2回目の呼び出しが不要になるため、リストを選択フィールドの2回目のロードがより速くなります。

タイムアウト

リクエストを中止する前にREST呼び出しの応答を待機する時間(ミリ秒単位)を入力します。

Inputs

RESTサービスからのパスパラメーターまたはクエリパラメーターを設定して、RESTサービスの応答を絞り込みます。 ラベル、パラメーター、タイプ(テキストまたは数値)を指定し、データプロバイダーを使用するために入力が必要かどうかを選択します。

Outputs

出力は、オートコンプリートが有効なリストから選択フィールドまたはテキストフィールドに表示するパラメーターです。 複数の出力を追加することができます。 出力は入力によって絞り込むことができますが(上記参照)、入力フィルタリングを設定せずに表示することもできます。 ラベル、パス、タイプ(テキスト、数字、リスト)を指定します。

複数の入力を追加することができます。 入力値を指定する方法を提供するには、 自動入力ルールを使用します。 ユーザーが1つのフィールドに入力すると、その入力内容がRESTサービスに送信されます。 RESTサービスの応答データは、入力パラメータによってフィルタリングされます。

出力パスフィールドは JsonPath構文 で指定されるため、必ず$で始まる必要があります。 パスが返すデータのタイプは、[Type]フィールドで選択したタイプと一致する必要があります。 restcountries.eu サービスを使用して、[パス]フィールドに$..nameと入力することで、nameフィールドを出力として指定します。 より複雑なJsonPath式を構築する必要がある場合(たとえば、人口1億人以上のすべての国の名前が必要な場合 --- restcountries.euサービスを使用した $..[?(@.population>100000000)].name)は、 こちらこちら のようにJsonPathエバリュエーターを使用することを検討してください。

   ある値を表示し、別の値をデータベースに保存するには、[Paths]フィールドにセミコロンで区切って両方を入力します(``$..name;$..numericCode``)。

restcountries.euデータプロバイダーを使用している場合は、ユーザーには国名が表示され、データベースには数字の国コードが保存されます。