サンプルAPIアプリケーションの構築
Liferay DXP 2023.Q4+/Portal GA102+ ベータ版機能
API Builder は現在、 ベータ機能フラグ (LPS-178642) の背後にあります。 APIエンドポイントは現在、エンティティのコレクションの取得と作成をサポートしています。
以下の手順に従って、模擬APIアプリケーションの例をご覧ください。
サンプルオブジェクトとエントリの追加
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 に変更してください。
次に、以下の手順に従います。
-
コマンドラインで、次のスクリプトを実行して
Studentオブジェクトを作成します。student=$(curl \ -H "Content-Type: application/json" \ -X POST \ "http://localhost:8080/o/object-admin/v1.0/object-definitions" \ -d "{\"label\": {\"en_US\": \"Student\"}, \"name\": \"Student\", \"panelCategoryKey\": \"control_panel.object\"、 \"pluralLabel\": {\"en_US\": \"Students\"}、 \"scope\": \"company\"}" \ -u "test@liferay.com:learn" | jq -r ".id") curl \ -H "Content-Type: application/json" \ -X POST \ "http://localhost:8080/o/object-admin/v1.0/object-definitions/${student}/object-fields" \ -d "{\"businessType\": \"Text\"、 \"ラベル\": {\"en_US\": \"名\"}、 \"名前\": \"名\"、 \"required\": false}" \ -u "test@liferay.com:learn" curl \ -H "Content-Type: application/json" \ -X POST \ "http://localhost:8080/o/object-admin/v1.0/object-definitions/${student}/object-fields" \ -d "{\"businessType\": \"Text\", \"ラベル\": {\"en_US\": \"姓\"}, \"名前\": \"姓\", \"必須\": false}" \ -u "test@liferay.com:learn" curl \ -H "Content-Type: application/json" \ -X POST \ "http://localhost:8080/o/object-admin/v1.0/object-definitions/${student}/publish" \ -u "test@liferay.com:learn" -
グローバルメニュー (
) → コントロールパネル → オブジェクト に移動します。 新しい Studentオブジェクトが作成されたことを確認します。 -
コマンドラインで、次のスクリプトを実行して
Courseオブジェクトを作成します。course=$(curl \ -H "Content-Type: application/json" \ -X POST \ "http://localhost:8080/o/object-admin/v1.0/object-definitions" \ -d "{\"label\": {\"en_US\": \"コース\"}, \"名前\": \"コース\", \"panelCategoryKey\": \"control_panel.object\"、 \"pluralLabel\": {\"en_US\": \"Courses\"}、 \"scope\": \"company\"}" \ -u "test@liferay.com:learn" | jq -r ".id") curl \ -H "Content-Type: application/json" \ -X POST \ "http://localhost:8080/o/object-admin/v1.0/object-definitions/${course}/object-fields" \ -d "{\"businessType\": \"Text\"、 \"ラベル\": {\"en_US\": \"コース名\"}、 \"名前\": \"コース名\"、 \"必須\": false}" \ -u "test@liferay.com:learn" -
グローバルメニュー (
) → コントロールパネル → オブジェクト に移動します。 先ほど作成された コースオブジェクトをクリックします。 -
関係 タブをクリックします。 をクリックして (
を追加)します。 -
新しい関係を定義するには、以下の値を入力してください。
分野 価値 ラベル 登録 名前 登録 タイプ 一対多 1つの記録 コース 多くの記録 学生 をクリックして保存します。
-
詳細 タブをクリックします。 をクリックして公開 します。
サンプルコースと学生を追加する
-
コマンドラインで、以下のスクリプトを実行して、2つのコースと2人の学生を作成します。
math101=$(curl \ -H "Content-Type: application/json" \ -X POST \ "http://localhost:8080/o/c/courses" \ -d "{\"courseName\": \"Math 101\"}" \ -u "test@liferay.com:learn" | jq -r ".id") curl \ -H "Content-Type: application/json" \ -X POST \ "http://localhost:8080/o/c/students" \ -d "{\"r_enrollment_c_courseId\":${math101}, \"firstName\": \"Mary\", \"lastName\": \"Liferay\"}" \ -u "test@liferay.com:learn" history101=$(curl \ -H "Content-Type: application/json" \ -X POST \ "http://localhost:8080/o/c/courses" \ -d "{\"courseName\": \"History 101\"}" \ -u "test@liferay.com:learn" | jq -r ".id") curl \ -H "Content-Type: application/json" \ -X POST \ "http://localhost:8080/o/c/students" \ -d "{\"r_enrollment_c_courseId\":${history101}、 \"firstName\": \"John\"、 \"lastName\": \"Liferay\"}" \ -u "test@liferay.com:learn"
APIアプリケーションの作成
-
グローバルメニュー (
) → コントロールパネル → API ビルダー に移動します。 -
をクリックして (
を追加)します。 新しいAPIアプリケーションのタイトル、URL、および説明を入力してください。
分野 価値 タイトル 登録 URL 登録 説明 学生登録情報を取得するためのAPI。 をクリックしてを作成します。
-
スキーマ タブをクリックします。 をクリックして (
を追加)します。 -
新しいスキーマの名前、説明、およびオブジェクトを入力してください。
分野 価値 名前 コース登録 説明 開講科目とその履修学生の一覧。 物体 コース をクリックしてを作成します。
-
新しく作成したスキーマの プロパティ タブをクリックします。 左側のメニューで コース名 をクリックして、
コース名フィールドを追加します。
-
左側のメニューで、 関連オブジェクトを表示をクリックします。 属性を展開するには、 学生 をクリックしてください。 左側のメニューで、 名 と 姓 をクリックして、
名と姓フィールドを追加します。 右上隅の 保存 をクリックしてください。 -
次に、「エンドポイント」タブをクリックします。 をクリックして (
を追加)します。 -
新しいAPIエンドポイントのスコープ、パス、および説明を入力してください。
分野 価値 範囲 会社 パス コース 説明 コースとその受講生の一覧を取得するためのエンドポイント。 をクリックしてを作成します。
-
新しく作成された API エンドポイントの 設定 タブをクリックします。 レスポンスボディスキーマで、前の手順で作成した Course Registrations スキーマを選択します。 ページ右上の 公開 をクリックします。
-
APIエクスプローラーにアクセスして、新しいAPIアプリケーションをテストしてください(例: http://localhost:8080/o/api?endpoint=http://localhost:8080/o/c/registration/openapi.json)。
GET courses エンドポイントをクリックし、 Execute をクリックします。

カスタムAPIアプリケーションは、コース一覧と、そのコースを受講している学生の一覧を返します。