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

アセットライブラリ API の基礎

Liferay の REST API は、アセット ライブラリを作成、取得、更新、削除するためのエンドポイントを提供します。

Liferay DXP 2025.Q4以降、これらの同じエンドポイントは コンテンツ管理システム(CMS)スペースも管理します。 詳細については、「 コンテンツ管理システム スペースを作成する 」を参照してください。

アセットライブラリを作成する

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

docker run -it -m 8g -p 8080:8080 liferay/dxp:2025.q1.6-lts

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

次に、以下の手順に従います。

  1. カテゴリと語彙 API の基礎をダウンロードして解凍します。

    curl https://resources.learn.liferay.com/examples/liferay-z2u9.zip -O
    
    unzip liferay-z2u9.zip
    
  2. コマンドラインで curl フォルダに移動し、 AssetLibraries_POST.sh スクリプトを実行して新しいアセット ライブラリを作成します。

    ./AssetLibraries_POST.sh
    

    サンプル スクリプトには複数のパラメーターが含まれていますが、基本的な POST 要求に必要なのは、一意の assetLibraryKeyname、および settings オブジェクト (空でも可) だけです。

    curl \
    "http://localhost:8080/o/headless-asset-library/v1.0/asset-libraries" \
    --data-raw '
       {
          "assetLibraryKey": "my-asset-library-key",
          "name": "My Asset Library",
          "settings": {}
       }' \
    --header "Content-Type: application/json" \
    --request "POST" \
    --user "test@liferay.com:learn"
    

    JSON 応答により、アセット ライブラリが作成されたことが確認されます。

    {
       "actions" : {
          "pin" : {
             "method" : "PUT",
             "href" : "http://localhost:8080/o/headless-asset-library/v1.0/asset-libraries/35914/pins"
          },
          "connect-sites" : {
             "method" : "GET",
             "href" : "http://localhost:8080/o/headless-asset-library/v1.0/asset-libraries/35914"
          },
          "permissions" : {
             "method" : "PATCH",
             "href" : "http://localhost:8080/o/headless-asset-library/v1.0/asset-libraries/35914"
          },
          "get" : {
             "method" : "GET",
             "href" : "http://localhost:8080/o/headless-asset-library/v1.0/asset-libraries/35914"
          },
          "unpin" : {
             "method" : "DELETE",
             "href" : "http://localhost:8080/o/headless-asset-library/v1.0/asset-libraries/35914/pins"
          },
          "update" : {
             "method" : "PATCH",
             "href" : "http://localhost:8080/o/headless-asset-library/v1.0/asset-libraries/35914"
          },
          "assign-members" : {
             "method" : "GET",
             "href" : "http://localhost:8080/o/headless-asset-library/v1.0/asset-libraries/35914"
          },
          "delete" : {
             "method" : "DELETE",
             "href" : "http://localhost:8080/o/headless-asset-library/v1.0/asset-libraries/35914"
          }
       },
       "assetLibraryKey" : "My Asset Library",
       "creatorUserId" : 20132,
       "dateCreated" : "2025-10-03T14:00:00Z",
       "dateModified" : "2025-10-03T14:00:00Z",
       "description" : "A new asset library created through the Headless API",
       "externalReferenceCode" : "47143084-6150-16d8-0a65-907d5ed6d6d7",
       "id" : 35914,
       "name" : "My Asset Library",
       "settings" : {
          "autoTaggingEnabled" : true,
          "availableLanguageIds" : [ ],
          "defaultLanguageId" : "",
          "logoColor" : "outline-0",
          "mimeTypeLimits" : [ ],
          "sharingEnabled" : true,
          "trashEnabled" : true,
          "trashEntriesMaxAge" : 0,
          "useCustomLanguages" : false
       },
       "siteId" : 35915,
       "type" : "AssetLibrary"
    }
    

    idexternalReferenceCode の値に注意してください。 アセット ライブラリを取得、更新、または削除するときに使用します。

  3. 作成を確認するには、 グローバル メニュー (Global Menu icon) → アプリケーションアセット ライブラリでアセット ライブラリ アプリケーションを開きます。

    アセット ライブラリ アプリケーションに移動して、アセット ライブラリが作成されたことを確認します。

  4. Java の例を実行するには、 java フォルダーに移動し、ソース ファイルをコンパイルします。

    javac -classpath .:* *.java
    
  5. 次のコマンドで AssetLibraries_POST クラスを実行します。

    java --add-opens java.base/java.net=ALL-UNNAMED -classpath .:* AssetLibraries_POST
    

    Java 8 を搭載した古いバージョンの Liferay では、 --add-opens 引数を削除します。

    java -classpath .:* AssetLibraries_POST
    

cURLコマンドの検証

AssetLibraries_POST.sh スクリプトは、cURL を使用して REST サービスを呼び出します。

curl \
	"http://localhost:8080/o/headless-asset-library/v1.0/asset-libraries" \
	--data-raw '{
			"assetLibraryKey": "my-asset-library-key",
			"description": "This asset library was created by the headless API.",
			"name": "My Asset Library",
			"settings": {},
			"type": "AssetLibrary"
	}' \
	--header "Accept: application/json" \
	--header "Content-Type: application/json" \
	--request "POST" \
	--user "test@liferay.com:learn"

主な議論は

引数説明
--header "Content-Type: application/json"リクエストボディの形式として JSON を宣言します。
--request "POST"指定されたエンドポイントで起動するHTTPメソッド
"http://localhost:8080/o/headless-asset-library/v1.0/asset-libraries"アセットライブラリを作成するためのRESTサービスエンドポイント
--data-raw '{...}'作成するアセットライブラリのプロパティを含むJSON本体
--user "test@liferay.com:learn"基本的な認証情報

--data-raw の JSON 本文には、次の最上位パラメータが含まれています。

パラメーター説明
assetLibraryKeyライブラリ内部で使用される一意のキー
descriptionアセットライブラリのテキスト説明
nameアセットライブラリの表示名(必須)
permissions役割と許可されたアクションを定義する権限オブジェクトの配列
settingsライブラリの動作の構成オブジェクト
typeリソースの種類。 可能な値: AssetLibrary または Liferay DXP 2025.Q4+ Space。

完全な AssetLibrary スキーマは、OpenAPI 定義の http://[host]:[port]/o/api?endpoint=http://[host]:[port]/o/headless-asset-library/v1.0/openapi.json で確認できます。

ここでは、デモのために基本的な認証を使用しています。 本番環境では、 OAuth2経由でユーザーを認証する必要があります。 OAuth2 を使用するサンプル React アプリケーションについては、 OAuth2 を使用してユーザーを承認する を参照してください。

Javaクラスを調べる

AssetLibraries_POST.java クラスは、 AssetLibraryResource サービスを使用してアセット ライブラリを追加します。

public class AssetLibraries_POST {

/**
 * java --add-opens java.base/java.net=ALL-UNNAMED -classpath .:* AssetLibraries_POST
 */
public static void main(String[] args) throws Exception {
	AssetLibraryResource.Builder builder = AssetLibraryResource.builder();

	AssetLibraryResource assetLibraryResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	System.out.println(
		assetLibraryResource.postAssetLibrary(_createAssetLibrary()));
}

private static AssetLibrary _createAssetLibrary() {
	return new AssetLibrary() {
		{
			setAssetLibraryKey("my-asset-library-key");
			setDescription(
				"This asset library was created by the headless API.");
			setName("My Asset Library");
			setSettings(new Settings());
			setType(AssetLibrary.Type.ASSET_LIBRARY);
		}
	};
}

このクラスは、わずか3行のコードでRESTサービスを呼び出します。

行(省略形)説明
AssetLibraryResource.Builder builder = AssetLibraryResource.builder();Builder を作成し、 AssetLibraryResource サービス インスタンスを生成します。
AssetLibraryResource assetLibraryResource = builder.authentication(...).build();基本認証資格情報を設定し、 AssetLibraryResource サービス インスタンスを構築します。
AssetLibrary assetLibrary = new AssetLibrary();投稿するデータを保持するための新しい AssetLibrary オブジェクトを作成します。
assetLibrary.setAssetLibraryKey(...);setDescription(...);setName(...);アセット ライブラリのキー、説明、および名前を定義します。
assetLibrary.setSettings(new Settings());アセット ライブラリの空の 設定 オブジェクトを初期化します。
assetLibrary.setType(AssetLibrary.Type.ASSET_LIBRARY);アセット ライブラリの種類を設定します。
assetLibraryResource.postAssetLibrary(assetLibrary);新しいアセット ライブラリを作成するために、 AssetLibrary データを含む POST リクエストを送信します。

プロジェクトには依存関係として com.liferay.headless.asset.library.client.jar が含まれています。 すべてのRESTアプリケーションのクライアントJAR依存関係情報は、/o/apiでインストール先のAPIエクスプローラーで確認できます。

他の Java クラスの例もこれに似ていますが、異なる AssetLibraryResource メソッドを呼び出します。

メイン メソッドのコメントは、クラスの実行を示しています。

重要

サービスの詳細については、 AssetLibraryResource を参照してください。

以下は、cURL と Java を使用して他の AssetLibrary REST サービスを呼び出す例です。

コンテンツ管理システムスペースを作成する

ベータ機能 Liferay DXP 2025.Q4+

重要

現在、この機能はベータ機能フラグ (LPD-17564) の背後にあり、リリース機能フラグ (LPD-32050 および LPD-34594) にも依存しています。 詳細については、 機能フラグ を参照してください。

同じ AssetLibrary エンドポイントを使用して、 コンテンツ管理システム (CMS) スペース を作成できます。 唯一の違いは、 type フィールドを "AssetLibrary"ではなく "Space" に設定する必要があることです。

-カール

タイプ フィールドを "スペース"に変更します。

curl \
   "http://localhost:8080/o/headless-asset-library/v1.0/asset-libraries" \
   --data-raw '
      {
         "assetLibraryKey": "my-space-key",
         "description": "A new space created through the Headless API",
         "name": "My Space",
         "settings": {},
         "type": "Space"
      }' \
   --header "Accept: application/json" \
   --header "Content-Type: application/json" \
   --request "POST" \
   --user "test@liferay.com:learn"

JSON 応答により、CMS スペースが作成されたことが確認されます。

(...)
},
"assetLibraryKey" : "My Space",
"creatorUserId" : 20131,
"dateCreated" : "2025-10-09T11:54:31Z",
"dateModified" : "2025-10-09T11:54:31Z",
"description" : "A new space created through the Headless API",
"externalReferenceCode" : "2847d0b7-09ab-6e6a-ac55-4cc4cbb70b44",
"id" : 36582,
"name" : "My Space",
"settings" : {
   "autoTaggingEnabled" : false,
   "availableLanguageIds" : [ ],
   "defaultLanguageId" : "",
   "logoColor" : "outline-0",
   "mimeTypeLimits" : [ ],
   "sharingEnabled" : true,
   "trashEnabled" : true,
   "trashEntriesMaxAge" : 0,
   "useCustomLanguages" : false
},
"siteId" : 36583,
"type" : "Space"
}
  • Java

    Java クラスの setType メソッドを更新して、リソースをアセット ライブラリではなく CMS スペースとして定義します。

    (...)
    
    public class AssetLibraries_POST {
    
       /**
       * java --add-opens java.base/java.net=ALL-UNNAMED -classpath .:* AssetLibraries_POST
       */
       public static void main(String[] args) throws Exception {
          AssetLibraryResource.Builder builder =
             AssetLibraryResource.builder();
    
          AssetLibraryResource assetLibraryResource =
             builder.authentication(
                "test@liferay.com", "learn"
             ).build();
    
          System.out.println(
             assetLibraryResource.postAssetLibrary(
                _createAssetLibrary()));
       }
    
          private static AssetLibrary _createAssetLibrary() {
          return new AssetLibrary() {
             {
                setAssetLibraryKey("my-asset-library-key");
                setDescription("A new asset library created through the Headless API");
                setName("My Asset Library");
                setSettings(new Settings());
                setType(AssetLibrary.Type.SPACE);
             }
          };
       }
    
    }
    

    新しいリソースをアセット ライブラリではなくスペースとして作成することを指定するには、Java クラスに setType(AssetLibrary.Type.SPACE); ステートメントを含める必要があります。

その他のすべての方法は、アセット ライブラリとスペースで同じように機能します。 対応する ID または外部参照コードを使用して呼び出します。 応答には、リソースがアセット ライブラリであるかスペースであるかを示す type フィールドが含まれます。

アセットライブラリを取得する

cURL または Java コマンドを使用してアセット ライブラリを取得できます。

1234 をアセットライブラリ ID に置き換えます。 この値は、作成レスポンス内、または UI の アセット ライブラリ設定詳細 で確認できます。

アセット ライブラリ設定の UI からアセット ライブラリ ID を見つけます。

  • カール

    コマンド:

    ./AssetLibraries_GET_ById.sh 1234
    

    コード:

curl \
	"http://localhost:8080/o/headless-asset-library/v1.0/asset-libraries/${1}" \
	--header "Accept: application/json" \
	--user "test@liferay.com:learn"
  • Java

    コマンド:

    java --add-opens java.base/java.net=ALL-UNNAMED -classpath .:* -DassetLibraryId=1234 AssetLibraries_GET_ById
    
    

    Java 8 を搭載した古いバージョンの Liferay では、 --add-opens 引数を削除します。

    java -classpath .:* -DassetLibraryId=1234 AssetLibraries_GET_ById
    

    コード:

public class AssetLibraries_GET_ById {

/**
 * java --add-opens java.base/java.net=ALL-UNNAMED -classpath .:* -DassetLibraryId=1234 AssetLibraries_GET_ById
 */
public static void main(String[] args) throws Exception {
	AssetLibraryResource.Builder builder = AssetLibraryResource.builder();

	AssetLibraryResource assetLibraryResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	System.out.println(
		assetLibraryResource.getAssetLibrary(
			Long.valueOf(System.getProperty("assetLibraryId"))));
}

}

応答は、JSON 形式で AssetLibrary オブジェクトを返します。

外部参照コード(ERC)

ExternalReferenceCode を、作成時に自動的に割り当てられたアセット ライブラリの外部参照コードに置き換えます (この例では、 47143084-6150-16d8-0a65-907d5ed6d6d7)。 後で アセット ライブラリを編集 して、ERC をより読みやすい値に変更できます。

  • カール

    コマンド:

    ./AssetLibraries_GET_ByExternalReferenceCode.sh ExternalReferenceCode
    

    コード:

curl \
	"http://localhost:8080/o/headless-asset-library/v1.0/asset-libraries/by-external-reference-code/${1}" \
	--header "Accept: application/json" \
	--user "test@liferay.com:learn"
  • Java

    コマンド:

    java --add-opens java.base/java.net=ALL-UNNAMED -classpath .:* -DassetLibraryExternalReferenceCode=ExternalReferenceCode AssetLibraries_GET_ByExternalReferenceCode
    

    Java 8 を搭載した古いバージョンの Liferay では、 --add-opens 引数を削除します。

    java -classpath .:* -ExternalReferenceCode=ExternalReferenceCode AssetLibraries_GET_ByExternalReferenceCode
    

    コード:

public class AssetLibraries_GET_ByExternalReferenceCode {

/**
 * java --add-opens java.base/java.net=ALL-UNNAMED -classpath .:* -DassetLibraryExternalReferenceCode=ExternalReferenceCode AssetLibraries_GET_ByExternalReferenceCode
 */
public static void main(String[] args) throws Exception {
	AssetLibraryResource.Builder builder = AssetLibraryResource.builder();

	AssetLibraryResource assetLibraryResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	System.out.println(
		assetLibraryResource.getAssetLibraryByExternalReferenceCode(
			System.getProperty("assetLibraryExternalReferenceCode")));
}

}

応答は、JSON 形式で AssetLibrary オブジェクトを返します。

パッチアセットライブラリ

既存のアセット ライブラリの特定のフィールドを更新します。 1234 をアセットライブラリの ID に置き換えます。

  • カール

    コマンド:

    ./AssetLibraries_PATCH_ById.sh 1234
    

    コード:

curl \
	"http://localhost:8080/o/headless-asset-library/v1.0/asset-libraries/${1}" \
	--data-raw '{
			"description": "This asset library was patched by the headless API.",
			"externalReferenceCode": "my-asset-library-001"
	}' \
	--header "Accept: application/json" \
	--header "Content-Type: application/json" \
	--request "PATCH" \
	--user "test@liferay.com:learn"
  • Java

    コマンド:

    java --add-opens java.base/java.net=ALL-UNNAMED -classpath .:* -DassetLibraryId=1234 AssetLibraries_PATCH_ById
    

    Java 8 を搭載した古いバージョンの Liferay では、 --add-opens 引数を削除します。

    java -classpath .:* -DassetLibraryId=1234 AssetLibraries_PATCH_ById
    

    コード:

public class AssetLibraries_PATCH_ById {

/**
 * java --add-opens java.base/java.net=ALL-UNNAMED -classpath .:* -DassetLibraryId=1234 AssetLibraries_PATCH_ById
 */
public static void main(String[] args) throws Exception {
	AssetLibraryResource.Builder builder = AssetLibraryResource.builder();

	AssetLibraryResource assetLibraryResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	System.out.println(
		assetLibraryResource.patchAssetLibrary(
			Long.valueOf(System.getProperty("assetLibraryId")),
			_createAssetLibrary()));
}

private static AssetLibrary _createAssetLibrary() {
	return new AssetLibrary() {
		{
			setDescription(
				"This asset library was patched by the headless API.");
			setExternalReferenceCode("my-asset-library-001");
		}
	};
}

この例では、説明が Headless API を通じて作成された新しいアセット ライブラリ から Headless API を通じて編集された新しいアセット ライブラリの説明に更新されます。

外部参照コード (ERC) もシステム生成値から my-asset-library-001に変更されます。

アセットライブラリを配置する

外部参照コード (ERC) を使用して既存のアセット ライブラリを上書きします。 この例では、前の手順で更新された ERC である my-asset-library-001を使用します。

  • カール

    コマンド:

    ./AssetLibraries_PUT_ByExternalReferenceCode.sh ExternalReferenceCode
    

    コード:

curl \
	"http://localhost:8080/o/headless-asset-library/v1.0/asset-libraries/by-external-reference-code/${1}" \
	--data-raw '{
			"assetLibraryKey": "updated-asset-library-key",
			"description": "This asset library was updated by the headless API.",
			"externalReferenceCode": "updated-asset-library-001",
			"name": "Updated Asset Library",
	}' \
	--header "Accept: application/json" \
	--header "Content-Type: application/json" \
	--request "PUT" \
	--user "test@liferay.com:learn"
  • Java

    コマンド:

    java --add-opens java.base/java.net=ALL-UNNAMED -classpath .:* -DassetLibraryExternalReferenceCode=ExternalReferenceCode AssetLibraries_PUT_ByExternalReferenceCode
    

    Java 8 を搭載した古いバージョンの Liferay では、 --add-opens 引数を削除します。

    java -classpath .:* -DassetLibraryExternalReferenceCode=ExternalReferenceCode AssetLibraries_PUT_ByExternalReferenceCode
    

    コード:

public class AssetLibraries_PUT_ByExternalReferenceCode {

/**
 * java --add-opens java.base/java.net=ALL-UNNAMED -classpath .:* -DassetLibraryExternalReferenceCode=ExternalReferenceCode AssetLibraries_PUT_ByExternalReferenceCode
 */
public static void main(String[] args) throws Exception {
	AssetLibraryResource.Builder builder = AssetLibraryResource.builder();

	AssetLibraryResource assetLibraryResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	System.out.println(
		assetLibraryResource.putAssetLibraryByExternalReferenceCode(
			System.getProperty("assetLibraryExternalReferenceCode"),
			_createAssetLibrary()));
}

private static AssetLibrary _createAssetLibrary() {
	return new AssetLibrary() {
		{
			setAssetLibraryKey("updated-asset-library-key");
			setDescription(
				"This asset library was updated by the headless API.");
			setExternalReferenceCode("updated-asset-library-001");
			setName("Updated Asset Library");
		}
	};
}

指定されたアセット ライブラリが存在しない場合は、この PUT 要求によって新しいライブラリが作成されます。

アセットライブラリを削除する

既存のアセット ライブラリを削除します。 1234 をアセットライブラリの ID に置き換えます。

  • カール

    コマンド:

    ./AssetLibraries_DELETE_ById.sh 1234
    

    コード:

curl \
	"http://localhost:8080/o/headless-asset-library/v1.0/asset-libraries/${1}" \
	--header "Accept: application/json" \
	--request "DELETE" \
	--user "test@liferay.com:learn"
  • Java

    コマンド

    java --add-opens java.base/java.net=ALL-UNNAMED -classpath .:* -DassetLibraryId=1234 AssetLibraries_DELETE_ById
    

    Java 8 を搭載した古いバージョンの Liferay では、 --add-opens 引数を削除します。

    java -classpath .:* -DassetLibraryId=1234 AssetLibraries_DELETE_ById
    

    コード:

public class AssetLibraries_DELETE_ById {

/**
 * java --add-opens java.base/java.net=ALL-UNNAMED -classpath .:* -DassetLibraryId=1234 AssetLibraries_DELETE_ById
 */
public static void main(String[] args) throws Exception {
	AssetLibraryResource.Builder builder = AssetLibraryResource.builder();

	AssetLibraryResource assetLibraryResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	assetLibraryResource.deleteAssetLibrary(
		Long.valueOf(System.getProperty("assetLibraryId")));
}

}