React Chartsでオブジェクトデータを使用する
ここでは、 オブジェクト、 ヘッドレス API、および カスタム要素リモート アプリケーション を使用して、データ ダッシュボード用の動的なチャートを作成します。 まず、オブジェクトAPI 呼び出し用にCORSを有効にして、新しいDXP インスタンスをセットアップします。 次に、データの受信と保存を行うためのオブジェクトを作成します。 REST APIを使ってオブジェクトにデータを追加したら、提供されているReact FusionChartsアプリケーションをダウンロードし、ビルドしてください。 コードがコンパイルされたら、生成された.jsファイルをLiferayドキュメントライブラリーでホストし、そのWebDAV URLをコピーします。 最後に、このURLを使ってReactチャートのリモートアプリケーションを作成し、ページウィジェットとしてデプロイします。
チャートは5秒ごとにヘッドレスAPI経由でオブジェクトを呼び出し、オブジェクトのデータを返してチャートを動的に更新するように構成されています。

Liferay DXP のセットアップ
Liferay DXP の新しいインスタンスを起動するには、以下を実行します。
docker run -it -m 8g -p 8080:8080 liferay/dxp:2026.q1.9-lts
http://localhost:8080 に、メールアドレス test@liferay.com とパスワード test を使用して Liferay にサインインします。 プロンプトが表示されたら、パスワードを learn に変更してください。
次に、以下の手順に従って、 /o/c/* URL パターンを デフォルト ポータル CORS 設定 に追加します。
-
グローバルメニュー (
) を開き、 コントロールパネル → システム設定 → セキュリティツール に移動します。 -
ポータルクロスオリジンリソース共有(CORS) タブに移動し、 デフォルトのポータルCORS構成をクリックします。

-
URLパターン を
/o/c/*の値とともに追加し、 保存 をクリックします。 これにより、すべてのオブジェクトAPIでCORSが有効になります。
React Chart 用のオブジェクトを作成する
-
グローバルメニュー (
) を開き、 コントロールパネル → オブジェクト に移動します。 -
追加 ボタン (
) をクリックし、以下の値を入力してください。分野 値 ラベル X3J8オブジェクト 複数形ラベル X3J8オブジェクト 名前 X3J8オブジェクト 注記提供されているReactアプリはこれらの値を使用します。
-
新しい オブジェクト ドラフトを選択し、 フィールド タブをクリックして、これらの フィールド を追加します。
ラベル フィールド名 タイプ 必須 ラベル ラベル 文章 ✔ 価値 価値 整数 ✔ -
詳細 タブをクリックし、 公開 をクリックします。
オブジェクトの公開 は、データの受信と保存のための新しいアプリケーションを作成してアクティブ化します。 Liferay UIまたはヘッドレスAPI経由でアクセスできるようになりました。
ヘッドレスAPIを使用してオブジェクトにデータを追加する
-
Liferay の API Explorer (つまり、
localhost:8080/o/apiを開き、 REST Applications ドロップダウン メニューをクリックし、 c/x3j8objects をクリックします。 -
バッチ
POSTAPI のリクエストボディにこのデータを入力してください:[ { "ラベル": "FOO"、 "値": "250" }、 { "ラベル": "BAR"、 "値": "200" }、 { "ラベル": "GOO"、 "値": "150" }、 { "ラベル": "BAZ"、 "値": "100" }、 { "ラベル": "QUX", "値": "50" } ] -
をクリックして を実行し、データエントリをオブジェクトに追加します。
データの追加が完了したら、提供されているReactサーバーを設定できます。 これには、X3J8-ObjectへのAPI呼び出しを行い、そのデータを表示するFusionChartの実装が含まれます。
React Chartの設定
Reactアプリケーションをダウンロードしてビルドするには、以下の手順に従ってください。
-
React プロジェクト をダウンロードして解凍します。
curl https://resources.learn.liferay.com/examples/liferay-x3j8.zip -Ounzip liferay-x3j8.zipcd liferay-x3j8 -
nodeとyarnがインストールされていることを確認してください。 そうでない場合は、以下のコマンドを実行し、画面の指示に従ってください。./setup_tutorial.sh -
Reactアプリケーションのフォルダに移動し、Reactサーバーを起動します。
cd x3j8-custom-element糸のスタート起動したら、
localhost:3000にアクセスして React チャートを表示します。 これは、基本認証を使用してc/x3j8objectsサービスを呼び出し、5 秒ごとにオブジェクトのデータを取得します。
-
Reactプロジェクトをビルドします。
糸ビルドこのコマンドは、アプリケーションをリモートアプリとして実行するために必要なファイルを含む、最適化された本番環境用ビルドを作成します。
-
ビルドが成功したことを確認し、アプリケーションの
.jsファイルを確認してください。最適化された本番環境ビルドを作成しています... コンパイルに成功しました。 gzip圧縮後のファイルサイズ: 523.77 kB build/static/js/main.5a6819d5.js 20 B build/static/css/main.31d6cfe0.css注記.cssファイルはこのチュートリアルでは不要です。
コードがコンパイルされたら、アプリケーションの.jsファイルをLiferay ドキュメントライブラリでホストし、そのWebDAV URLをコピーします。
アプリケーションの .js ファイルをホストしています
-
サイトメニュー (
を開き、 コンテンツ & データを展開し、 ドキュメントとメディア をクリックします。 -
.jsファイルをアップロードエリアにドラッグアンドドロップしてください。ドキュメントライブラリにアップロードされると、ファイルには固有のWebDAV URLが割り当てられます。このURLを使用してリモートアプリを作成します。
-
情報 アイコン (
) をクリックし、アップロードした ファイル を選択します。 -
ファイルの WebDAV URL をコピーして、次のステップで使用するために保存します。
例えば、
http://localhost:8080/webdav/guest/document_library/main.5a6819d5.js。
React Chart 用のリモート アプリを作成する
-
グローバルメニュー (
) を開き、 アプリケーション → クライアント拡張機能 に移動します。 -
追加 ボタン (
) をクリックします。 -
以下の値を入力してください。
分野 価値 名前 X3J8カスタム要素 タイプ カスタム要素 HTML要素名 x3j8カスタム要素URL .jsファイルの WebDAV URLポートレットカテゴリ名 リモートアプリ -
をクリックして保存します。
保存されると、Liferayはリモートアプリケーションのウィジェットを作成し、サイトページにデプロイすることができます。 このウィジェットは、アプリケーションのポートレットカテゴリ名の下にリストされています(このチュートリアルでは、 リモートアプリ となります)。
