Data Providers
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

RESTデータプロバイダーを使用してフォームオプションを設定する

リストから選択 フィールドには多くのオプションを含めることができます。これらのオプションは、Liferay DXPに登録されているJSON Webサービス、またはその他のサードパーティ製REST Webサービスを使用することで自動的に提供できます。データプロバイダー全般について詳しく知りたい場合は、 データプロバイダー を参照してください。フォームにRESTデータプロバイダを適用するには、JSON Webサービスを呼び出し、データプロバイダがそこからデータを取得するように構成し、フォームでデータプロバイダを使用する方法を学習します。

注記

また、RESTデータプロバイダーを使用して、テキストフィールドのオートコンプリートを行うこともできます。

前提条件

一般的なニーズは、[選択]フィールドにオプションのリストを入力することです。たとえば、フォームで個人情報を収集する場合は、ユーザーの国が必要です。

  1. 「Country」という名前の単一選択フィールドを含むフォームを作成してください。

  2. 次に、 get-countries JSON Web サービスを使用します(2 つの—のどちらかを使用してください)。

    • Liferayをローカルで実行している場合は、 http://localhost:8080/api/jsonws にアクセスしてください。
    • 「get-countries」で検索してください。

    get-countriesというウェブサービスを検索してください。

    • をクリックして を呼び出します。

これで、国のリストが使用可能になりました。

ローカルネットワーク上のデータへのアクセスを有効にする

デフォルトでは、ユーザーはデータプロバイダーがローカルネットワーク上のURLを使用するように設定することはできません。このデフォルト設定は本番環境におけるセキュリティにとっては適切ですが、テストがしずらくなります。

データプロバイダーからローカルネットワークへのアクセスを有効にするには:

  1. コントロール パネル → システム設定 に移動します。

  2. データプロバイダー をクリックします(コンテンツ & データの下)。

  3. ローカルネットワーク にアクセスする チェックボックスをオンにします。

    ローカルネットワークへのアクセス権限を付与します。

  4. 完了したら、 をクリックして保存 をクリックしてください。

基本的なRESTデータプロバイダーを追加する

世界の国々 データプロバイダーを追加するには:

  1. 製品メニュー (Product Menu) を開き、 サイト管理 メニューのコンパスアイコン (Compass) をクリックします。

  2. フォームを作成するサイトを選択します。

  3. コンテンツ & データ → フォーム をクリックします。

  4. データプロバイダー タブをクリックします。

    [データプロバイダー]タブに移動します。

  5. をクリックして (Add)を追加し、RESTデータプロバイダーを追加します。

  6. 以下のデータを入力してください:

    • 名前: 世界の国々
    • URL: http://localhost:8080/api/jsonws/country/get-countries/
    • ユーザー名: adminuser@liferay.com
    • パスワード: adminuserpass
    • タイムアウト: 1000
    • 出力ラベル: 国名
    • 出力パス: $..nameCurrentValue
    • 出力タイプ: リスト

    値を入力してください。

  7. 完了したら、 をクリックして保存 をクリックしてください。

注記

$.. nameCurrentValue は、JSON データ構造をナビゲートし、出力へのパスを指定するための JsonPath 構文です。 JsonPath および については、こちら をご覧ください。

RESTデータプロバイダのフィルタとして入力を使用する

上記の例では、 Select from List フィールド にデータを入力するため、単一の出力のみを使用しています。 RESTプロバイダーからの応答をフィルタリングするには、入力フィールドを使用します。

この例では、別のデータプロバイダーを使用し、世界の国々に対して地域(例えば、南北アメリカ、ヨーロッパ、オセアニア)フィルターを適用します。

  1. 以下のデータを入力してください:

    • 名前: その他の国
    • URL: https://restcountries.com/v3.1/region/{region}?fields=name
    • 入力パラメータ: 領域
    • 入力タイプ: テキスト
    • 入力ラベル: 領域
    • 出力パス: $..name.common
    • 出力タイプ: リスト
    • 出力ラベル: 国名

    これらの値の詳細については、 データプロバイダー を参照してください。

この例では入力パラメータを使用しているため、API呼び出しが正しく解決されるように、データプロバイダにその入力パラメータを提供する必要があります。テキストフィールドの値を入力としてデータプロバイダーに送信する自動入力ルールを設定できます。例については、 自動入力ルール のドキュメントを参照してください。

データプロバイダーへの権限付与

ユーザーは、データプロバイダーが提供するオプションを表示するために、データプロバイダーに対する閲覧権限を持っている必要があります。例えば、ゲストがフォームに入力する必要がある場合は、閲覧権限を付与します。

データプロバイダーの権限を設定するには:

  1. サイト管理 → コンテンツ & データ → フォーム に移動します。

  2. [データプロバイダー]タブをクリックします。

  3. データ プロバイダーの横にある アクション (Actionsをクリックし、次に 権限 をクリックします。

    ゲストの表示権限を付与します。

  4. 必要な権限を付与します。

  5. 完了したら、 をクリックして保存 をクリックしてください。

選択フィールドでデータプロバイダーを使用する

データプロバイダーの設定が完了したら、それを使用して「リストから選択」フィールドにデータを入力します。

  1. コンテンツ & データ → フォーム をクリックします。

  2. リストから選択 フィールドをフォームにドラッグします。

  3. [リストの作成] ドロップダウンメニューから [データプロバイダーから選択] を選択します。

  4. 「データプロバイダーの選択」ドロップダウンメニューから「世界の国々」を選択してください。

  5. 「出力パラメータの選択」ドロップダウンメニューから、 国名 を選択します。

    [リストから選択]フィールドのデータプロバイダーの値を設定します。

  6. 完了したら、 フォームを保存 をクリックしてください。

データプロバイダーは、適切な権限を持つユーザーがフォームにアクセスした場合、選択フィールドに自動的に値を入力するようになりました。

フォームの利用者は、データプロバイダーによって表示されたリストからオプションを選択します。

データプロバイダーのエラーのトラブルシューティング

データプロバイダの障害に起因するエラーを特定するには、以下のサービスのログレベルを設定してください:

  1. コントロール パネル → システム → サーバー管理 に移動します。

  2. ログレベル タブをクリックします。

  3. ロギングカテゴリ com.liferay.dynamic.data.mapping.data.provider.internal.DDMDataProviderInvokerImpl を追加し、 WARN レベルでログを記録するように構成します。完了したら 保存してください。

  4. ログカテゴリ com.liferay.dynamic.data.mapping.form.field.type.internal.DDMFormFieldOptionsFactoryImpl を追加し、 WARN レベルでログを記録するように構成します。完了したら 保存してください。

データプロバイダにエラーが発生した場合、コンソールは警告メッセージを送信するようになりました。