Documentation

Documentation Menu

バッチAPIの使用

オブジェクトを公開すると、Liferayは自動的にそのためのREST APIを生成します。 これには、POST、PUT、DELETEの一括操作のためのバッチAPIが含まれます。 ここでは、cURLコマンドを使用して、カスタムオブジェクトのこれらのバッチAPIを呼び出します。

先に進む前に、新しい Liferay DXP/Portal 7.4インスタンスを セットアップ し、提供されたチュートリアルコードを 準備 します。

Tip

サイトオブジェクトと会社オブジェクトの両方に対して生成されるAPIの完全なリストについては、オブジェクトのヘッドレスフレームワークの統合を参照してください。 カスタムオブジェクトAPIは、LiferayAPIエクスプローラーを通して[server]:[port]/o/api (例:localhost:8080/o/api)で表示およびテストできます。 これらは、*[RESTアプリケーション]*の下に表示されます。

Liferayインスタンスのセットアップ

新しいLiferay インスタンスを起動し、以下を実行します。

docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.47-ga47。

http://localhost:8080でLiferayへのサインインします。 メールアドレス_test@liferay.com_とパスワード_test_を使用してください。 プロンプトが表示されたら、パスワードを _learn_に変更します。

次に、下記の手順で、このチュートリアルの基本オブジェクトを作成します。

  1. グローバルメニュー(グローバルメニュー)を開き、 [コントロールパネル] タブをクリックして、 [オブジェクト] に移動します。

  2. 追加 ボタン(追加ボタン)をクリックして、下記の値を入力します。

    フィールド

    ラベル

    Able

    複数形ラベル

    Ables

    名前

    Able

  3. 新規の オブジェクト ドラフトを選択し、 [フィールド] タブに移動して、単一のテキスト フィールド を追加します。

    ラベル

    フィールド名

    タイプ

    要否

    名前

    名前

    テキスト

  4. 詳細 タブに移動し、 公開 をクリックします。

    重要

    このチュートリアルでは、下記の値を使用する必要があります。

オブジェクトの公開 は、データの受信と保存のための新規アプリケーションを作成し、有効にします。 ヘッドレスAPIを介してアクセスできるようになりました。

サンプルコードを準備する

以下のコマンドを実行して、提供されたサンプルコードをダウンロードし、解凍してください。

curl https://learn.liferay.com/dxp/latest/ja/building-applications/objects/objects-tutorials/using-apis/liferay-t4r3.zip -O
unzip liferay-t4r3.zip

これらのスクリプトには、以下のバッチAPIが含まれています。

HTTP メソッド

HTTPエンドポイント

説明

DELETE

/batch

複数のオブジェクトエントリーを削除します

POST

/batch

API呼び出しで提供された詳細を使用して複数のオブジェクトエントリーを作成します

PUT

/batch

API呼び出しで提供された詳細を使用して、複数のオブジェクトエントリーを置き換えます

注釈

GETメソッドは、デモのために含まれています。 これは、Liferayインスタンスのオブジェクトエントリーの完全なリストを返します。

カスタムオブジェクトのAPIを呼び出す

  1. サンプルコードをダウンロード後、 liferay-t4r3プロジェクト内のcurlフォルダに移動します。

    cd liferay-t4r3/curl
    
  2. Ables_POST_Batchを実行します。 複数のオブジェクトエントリーを作成します。

    ./Ables_POST_Batch.sh
    

    端末には同様の出力が表示されます。

    {
      "className" : "com.liferay.object.rest.dto.v1_0.ObjectEntry",
      "contentType" : "JSON",
      "errorMessage" : "",
      "executeStatus" : "INITIAL",
      "externalReferenceCode" : "",
      "failedItems" : [ ],
      "id" : 4,
      "importStrategy" : "ON_ERROR_FAIL",
      "operation" : "CREATE",
      "processedItemsCount" : 0,
      "startTime" : "2022-04-07T22:51:37Z",
      "totalItemsCount" : 0
    }
    
  3. Ables_GET_FromCompany を実行し、エントリーが作成されたことを確認します。 すべてのオブジェクトエントリーのリストが返されます。

    ./Ables_GET_FromCompany.sh
    

    各エントリーのIDをコピーして、以下のPUTおよびDELETEメソッドで使用します。

    {
      ...
      "items" : [ {
        ...
        "id" : 41985,
        ...
        "name" : "Able 1"
      }, {
        ...
        "id" : 41987,
        ...
        "name" : "Able 2"
      }, {
        ...
        "id" : 41989,
        ...
        "name" : "Able 3"
      } ],
      "lastPage" : 1,
      "page" : 1,
      "pageSize" : 20,
      "totalCount" : 3
    }
    
  4. 各エントリーIDをパラメーターとしてAbles_PUT_Batchを実行します。 これにより、指定されたエントリーの詳細がAPI呼び出しで提供された詳細に置き換えられます。

    ./Ables_PUT_Batch.sh {first-entry-id} {second-entry-id} {third-entry-id}
    
    {
      "className" : "com.liferay.object.rest.dto.v1_0.ObjectEntry",
      "contentType" : "JSON",
      "errorMessage" : "",
      "executeStatus" : "INITIAL",
      "externalReferenceCode" : "",
      "failedItems" : [ ],
      "id" : 6,
      "importStrategy" : "ON_ERROR_FAIL",
      "operation" : "UPDATE",
      "processedItemsCount" : 0,
      "startTime" : "2022-04-07T23:02:17Z",
      "totalItemsCount" : 0
    }
    
  5. Ables_GET_FromCompany を実行し、エントリーが更新されたことを確認します。

    ./Ables_GET_FromCompany.sh
    
    {
      ...
      "items" : [ {
        ...
        "id" : 41985,
        ...
        "name" : "Able One"
      }, {
        ...
        "id" : 41987,
        ...
        "name" : "Able Two"
      }, {
        ...
        "id" : 41989,
        ...
        "name" : "Able Three"
      } ],
      "lastPage" : 1,
      "page" : 1,
      "pageSize" : 20,
      "totalCount" : 3
    }
    
  6. 各エントリーIDをパラメーターとしてAbles_DELETE_Batchを実行します。 これにより、指定したエントリーが削除されます。

    ./Ables_DELETE_Batch.sh {first-entry-id} {second-entry-id} {third-entry-id}
    
  7. Ables_GET_FromCompany を実行し、エントリーが削除されたことを確認します。

    ./Ables_GET_FromCompany.sh
    

    前のステップでエントリーを削除しているので、エントリー NOT FOUNDエラーが返されます。

サンプルのcURLスクリプトの検証

Ables_POST_Batch.sh

curl \
	-H "Content-Type: application/json" \
	-X POST \
	"http://localhost:8080/o/c/ables/batch" \
	-d "[{\"name\": \"Able 1\"}, {\"name\": \"Able 2\"}, {\"name\": \"Able 3\"}]" \
	-u "[email protected]:learn"

Ables_PUT_Batch.sh

curl \
	-H "Content-Type: application/json" \
	-X PUT \
	"http://localhost:8080/o/c/ables/batch" \
	-d "[{\"id\": ${1}, \"name\": \"Able One\"}, {\"id\": ${2}, \"name\": \"Able Two\"}, {\"id\": ${3}, \"name\": \"Able Three\"}]" \
	-u "[email protected]:learn"

Ables_DELETE_Batch.sh

curl \
	-H "Content-Type: application/json" \
	-X DELETE \
	"http://localhost:8080/o/c/ables/batch" \
	-d "[{\"id\": ${1}}, {\"id\": ${2}}, {\"id\": ${3}}]" \
	-u "[email protected]:learn"

追加情報