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

http://localhost:8080 に、メールアドレス test@liferay.com とパスワード test を使用して 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"
    }
    

    id および externalReferenceCode の値に注目してください。 アセットライブラリの取得、更新、削除を行う際にこれらを使用してください。

  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 スキーマの全文は、http://[host]:[port]/o/api?endpoint=http://[host]:[port]/o/headless-asset-library/v1.0/openapi.json の OpenAPI 定義で確認できます。

ここでは、デモのために基本的な認証を使用しています。 本番環境では、 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());アセットライブラリの空の 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 メソッドを呼び出します。

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

重要

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

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

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

ベータ版機能 Liferay DXP 2025.Q4+

重要

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

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

-カール

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

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または外部参照コードを使用してください。 レスポンスには、リソースがアセットライブラリかスペースかを示す タイプ フィールドが含まれます。

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

アセットライブラリは、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")));
}

}