データプロバイダー
データプロバイダーは、Formsアプリケーションで使用できるデータを提供します。 RESTデータプロバイダーはFormsアプリケーションに含まれています。 これを使用すると、 REST Web サービス からデータを取得して、フォーム フィールドに自動入力することができます。
よくある例としては、RESTデータプロバイダーを使用して、[リストから選択]フィールドのオプションに国のリストを入力することが挙げられます。
登録済みのJSON Webサービス
一部のデータ ソースは、 restcountries.com データ プロバイダーなどのサード パーティ ソースからのものです。 また、Liferay DXPには独自に登録されたWebサービスがあります。 ローカル サーバーを実行している場合は、リストについては http://localhost:8080/api/jsonws を参照してください。 国のリストを入力する場合、2つのget-countries JSON Web サービスがありますが、どちらでも動作します。 [Invoke]をクリックすると、結果が生成されます。
ローカルテスト環境でLiferayのWebサービスとデータプロバイダを使ってテストするには、ローカルネットワークアクセスを有効にする必要があります。 ローカル ネットワーク上のデータへのアクセスを有効にするを参照してください。
[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サービスが表示されます。](https://resources.learn.liferay.com/images/dxp/latest/en/low-code/forms/data-providers/images/01.png)
データプロバイダー設定リファレンス
フォームアプリケーションからデータプロバイダーを設定するには、[サイト管理] → [Content & Data] → [フォーム]に移動します。 データ プロバイダー タブをクリックし、(
) アイコンをクリックして開始します。 データプロバイダーを設定する際には、いくつかのフィールドに入力する必要があります。

URL
内部または外部のRESTサービスのエンドポイントのURLを入力します。 上記の例は、 https://restcountries.com/ の REST サービスを示しています。このサービスには、 地域で国を検索するためのエンドポイントが含まれています。
https://restcountries.com/rest/v2/region/{region}
データプロバイダーのURLには、パスパラメーターとクエリパラメーターの2種類のパラメーターを指定できます。
パス パラメータは、REST Web サービスを呼び出す URL の一部です。 パターン https://service-url.com/service/{path_parameter_name}を使用して追加します。
たとえば、 restcountries.comサービスのregionエンドポイントのパスパラメーターは{region}です。 パスパラメーターはURLの必須部分なので、URLのパスパラメーターに一致する [パラメーター]フィールド値を持つ入力(下記参照)を指定してください。
クエリパラメーターは、サービス呼び出しの出力を絞り込むためのURLの補完的な部分で、?query_parameter=query_parameter_valueというパターンに従います。
https://restcountries.com/rest/v2/all?fields=capital
パスパラメーターとは異なり、クエリパラメーターはオプションです。
ユーザー名とパスワード
必要に応じて、REST Webサービスへの認証に使用する認証情報を入力します。
初回リクエスト時のデータキャッシュ
データがキャッシュされている場合は、RESTサービス・プロバイダーへの2回目の呼び出しが不要になるため、リストを選択フィールドの2回目のロードがより速くなります。
タイムアウト
リクエストを中止する前にREST呼び出しの応答を待機する時間(ミリ秒単位)を入力します。
入力
RESTサービスからのパスパラメーターまたはクエリパラメーターを設定して、RESTサービスの応答を絞り込みます。 ラベル、パラメータ、タイプ (テキストまたは数値) を指定します。
出力
出力は、オートコンプリートが有効になっているリストから選択またはテキスト フィールドに表示されるパラメーターです。 複数の出力を追加できます。 出力は入力によって絞り込むことができますが(上記参照)、入力フィルタリングを設定せずに表示することもできます。 ラベル、パス、タイプ(テキスト、数字、リスト)を指定します。
複数の入力を追加できます。 入力値を指定する方法を提供するには、 自動入力フォーム ルールを使用します。 ユーザーが1つのフィールドに入力すると、その入力内容がRESTサービスに送信されます。 RESTサービスの応答データは、入力パラメータによってフィルタリングされます。
出力パス フィールドは JsonPath 構文で指定されるため、常に $で始まる必要があります。 パスが返すデータのタイプは、[Type]フィールドで選択したタイプと一致する必要があります。 restcountries.com サービスを使用して、[パス]フィールドに$..nameと入力することで、nameフィールドを出力として指定します。 より複雑な JsonPath 式を作成する必要がある場合 (たとえば、人口が 1 億人を超えるすべての国の名前を—$..[?(@.population>100000000)].name で restcountries.com サービスで取得する必要がある場合)、 JsonPath エバリュエーター ( こちらなど) の使用を検討してください。
1つの値を表示し、別の値をデータベースに保持するには、両方の値をパスフィールドにセミコロンで区切って入力します: $..name;$..numericCode
restcountries.comデータプロバイダーを使用している場合は、ユーザーには国名が表示され、データベースには数字の国コードが保存されます。