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

バッチAPIの使用

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

続行する前に、 新しい Liferay DXP/Portal 7.4 インスタンスをセットアップ し、提供されているチュートリアル コードを 準備 してください。

ヒント

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

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

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

docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.132-ga132

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

次に、次の手順に従って、このチュートリアルの基本的なオブジェクトを 作成 します。

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

  2. 追加 ボタン (Add Button) をクリックし、次の値を入力します。

    項目
    ラベルAble
    複数形のラベルAbles
    名前Able
  3. 新しい オブジェクト ドラフトを選択し、 フィールド タブに移動して、単一のテキスト フィールドを追加します。

    ラベル項目名種類必須
    名前nameテキストボックス
  4. 詳細 タブに移動し、 公開をクリックします。

    重要

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

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

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

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

curl https://resources.learn.liferay.com/examples/liferay-t4r3.zip -O
unzip liferay-t4r3.zip

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

HTTP メソッドHTTPエンドポイント説明
DELETE/batch複数のオブジェクトエントリーを削除します
POST/batchAPI呼び出しで提供された詳細を使用して複数のオブジェクトエントリーを作成します
PUT/batchAPI呼び出しで提供された詳細を使用して、複数のオブジェクトエントリーを置き換えます

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 \
	"http://localhost:8080/o/c/ables/batch" \
	--data-raw '
		[
			{
				"name": "Able 1"
			},
			{
				"name": "Able 2"
			},
			{
				"name": "Able 3"
			}
		]' \
	--header "Content-Type: application/json" \
	--request "POST" \
	--user "test@liferay.com:learn"

Ables_PUT_Batch.sh

curl \
	"http://localhost:8080/o/c/ables/batch" \
	--data-raw '
		[
			{
				"id": "'"${1}"'",
				"name": "Able One"
			},
			{
				"id": "'"${2}"'",
				"name": "Able Two"
			},
			{
				"id": "'"${3}"'",
				"name": "Able Three"
			}
		]' \
	--header "Content-Type: application/json" \
	--request "PUT" \
	--user "test@liferay.com:learn"

Ables_DELETE_Batch.sh

curl \
	"http://localhost:8080/o/c/ables/batch" \
	--data-raw '
		[
			{
				"id": "'"${1}"'"
			},
			{
				"id": "'"${2}"'"
			},
			{
				"id": "'"${3}"'"
			}
		]' \
	--header "Content-Type: application/json" \
	--request "DELETE" \
	--user "test@liferay.com:learn"