現在表示中:

概要

Assets HTTP API は、一般的な Marketing Cloud API の特定のパートです。全般的な説明については、Marketing Cloud API のユーザーマニュアルを参照してください。

Assets HTTP API は /api/assets で公開され、バイナリ、メタデータ、レンディション、コメントなどのアセットに対する作成、読み出し、更新、削除(CRUD)操作を実行できます。

現在の実装

Assets HTTP API は当初、Adobe Experience Manager(AEM)Assets 6.1 と一緒に導入されました。

この API にアクセスするには、次の手順を実行します。

  1. AEM を起動します。

  2. http://<Server Name>:<Port>/api.json で、API サービスドキュメントを開きます。

  3. Assets サービスリンクをクリックします。

データモデル

Assets HTTP API は、フォルダーとアセットという 2 つの主要要素を公開します。

フォルダー

フォルダーは、従来のファイルシステムのディレクトリに似ています。フォルダーは、他のフォルダーまたはアセットのコンテナです。フォルダーには、以下のコンポーネントがあります。

エンティティ:フォルダーのエンティティはフォルダーの子要素で、フォルダーまたはアセットです。

プロパティ

name  -- Name of the folder. This is the same as the last segment in the URL path without the extension
title -- Optional title of the folder which can be displayed instead of its name

注意:

フォルダーまたはアセットの一部のプロパティは、異なるプレフィックスにマップされます。jcr:titlejcr:description および jcr:languagejcr プレフィックスは、dc プレフィックスで置き換えられます。したがって、返された JSON で、dc:titledc:description にはそれぞれ jcr:titlejcr:description の値が含まれています。

リンク

フォルダーは、次の 3 つのリンクを公開します。

self      -- Link to itself
parent    -- Link to the parent folder
thumbnail -- (Optional) link to a folder thumbnail image

アセット

アセットは、実際には次のようなマルチパートの要素です。

  • アセットのプロパティとメタデータ
  • オリジナルのレンディション(最初にアップロードされたアセット)、サムネール、その他の各種レンディションなど複数のレンディション。追加レンディションは、サイズやビデオエンコーディングの異なる画像や、PDF または InDesign から抽出されたページの場合があります。
  • オプションのコメント

フォルダーには、以下のコンポーネントがあります。

エンティティ

アセットの子は、アセットのレンディションです。

プロパティ

リンク

使用可能な機能

Assets HTTP API には、以下の機能が含まれます。

  • フォルダーの一覧の取得
  • フォルダーの作成
  • アセットの作成
  • アセットバイナリの更新
  • アセットメタデータの更新
  • アセットレンディションの作成
  • アセットレンディションの更新
  • アセットコメントの作成
  • フォルダーまたはアセットのコピー
  • フォルダーまたはアセットの移動
  • フォルダー、アセットまたはレンディションの削除

注意:

読みやすいように、以下の例では、すべての cURL 表記法を省略しています。実際には、この表記法は cURL 用のスクリプトラッパーである Resty と関連があります。

前提条件
  • http://<Server>:<Port>/system/console/configMgr に移動します。
  • Adobe Granite CSRF フィルターに移動します。
  • フィルターメソッドプロパティに POST、PUT、DELETE が含まれることを確認します。

フォルダーの一覧の取得

既存のフォルダーとその子エンティティ(サブフォルダーまたはアセット)の Siren 表現を取得します。

リクエスト

GET /api/assets/myFolder.json

応答コード

200 - OK - success
404 - NOT FOUND - folder does not exist or is not accessible
500 - INTERNAL SERVER ERROR - if something else goes wrong

応答

返されるエンティティのクラスは assets/folder です。

含まれるエンティティのプロパティは、各エンティティの完全なプロパティセットのサブセットです。エンティティのすべての表現を取得するために、クライアントは relself のリンクが指す URL のコンテンツを取得する必要があります。

フォルダーの作成

指定されたパスに新しい sling:OrderedFolder を作成します。ノード名の代わりに「*」が指定されている場合、サーブレットはパラメーター名をノード名として使用します。リクエストデータとして受け入れられるのは、新しいフォルダーの Siren 表現か、application/www-form-urlencoded または multipart/form-data としてエンコードされた名前と値のペアのセットで、HTML フォームから直接フォルダーを作成するのに役立ちます。さらに、フォルダーのプロパティを URL クエリパラメーターとして指定できます。

指定されたパスの親ノードが存在しない場合、この操作は応答コード 500 で失敗します。フォルダーが既に存在する場合、応答コード 409 が返されます。

パラメーター

name - Folder name

リクエスト

POST /api/assets/myFolder -H"Content-Type: application/json" -d '{"class":"assetFolder","properties":{"title":"My Folder"}}'

または

POST /api/assets/* -F"name=myfolder" -F"title=My Folder"

応答コード

201 - CREATED - on successful creation
409 - CONFLICT - if folder already exist
412 - PRECONDITION FAILED - if root collection cannot be found or accessed
500 - INTERNAL SERVER ERROR - if something else goes wrong

アセットの作成

指定されたファイルを使用して、指定されたパスに DAM アセットを作成します。ノード名の代わりに「*」が指定されている場合、サーブレットはパラメーター名またはファイル名をノード名として使用します。

パラメーター

name - Asset name
file - File reference

リクエスト

POST /api/assets/myFolder/myAsset.png -H"Content-Type: image/png" --data-binary "@myPicture.png"

または

POST /api/assets/myFolder/* -F"name=myAsset.png" -F"file=@myPicture.png"

応答コード

201 - CREATED - if Asset has been created successfully
409 - CONFLICT - if Asset already exist
412 - PRECONDITION FAILED - if root collection cannot be found or accessed
500 - INTERNAL SERVER ERROR - if something else goes wrong

アセットバイナリの更新

アセットバイナリ(オリジナルのレンディション)を更新します。設定されている場合、この更新によってデフォルトのアセットワークフローが呼び出されます。

リクエスト

PUT /api/assets/myfolder/myAsset.png -H"Content-Type: image/png" --data-binary @myPicture.png

応答コード

200 - OK - if Asset has been updated successfully
404 - NOT FOUND - if Asset could not be found or accessed at the provided URI
412 - PRECONDITION FAILED - if root collection cannot be found or accessed
500 - INTERNAL SERVER ERROR - if something else goes wrong

アセットメタデータの更新

アセットメタデータのプロパティを更新します。

リクエスト

PUT /api/assets/myfolder/myAsset.png -H"Content-Type: application/json" -d '{"class":"asset", "properties":{"dc:title":"My Asset"}}'

応答コード

200 - OK - if Asset has been updated successfully
404 - NOT FOUND - if Asset could not be found or accessed at the provided URI
412 - PRECONDITION FAILED - if root collection cannot be found or accessed
500 - INTERNAL SERVER ERROR - if something else goes wrong

アセットレンディションの作成

アセットの新しいアセットレンディションを作成します。リクエストパラメーター名が指定されない場合、ファイル名がレンディション名として使用されます。

パラメーター

name - Rendition name
file - File reference

リクエスト

POST /api/assets/myfolder/myasset.png/renditions/web-rendition -H"Content-Type: image/png" --data-binary "@myRendition.png"

または

POST /api/assets/myfolder/myasset.png/renditions/* -F"name=web-rendition" -F"file=@myRendition.png"

応答コード

201 - CREATED - if Rendition has been created successfully
404 - NOT FOUND - if Asset could not be found or accessed at the provided URI
412 - PRECONDITION FAILED - if root collection cannot be found or accessed
500 - INTERNAL SERVER ERROR - if something else goes wrong

アセットレンディションの更新

アセットレンディションをそれぞれ新しいバイナリデータで置き換えて更新します。

リクエスト

PUT /api/assets/myfolder/myasset.png/renditions/myRendition.png -H"Content-Type: image/png" --data-binary @myRendition.png

応答コード

200 - OK - if Rendition has been updated successfully
404 - NOT FOUND - if Asset could not be found or accessed at the provided URI
412 - PRECONDITION FAILED - if root collection cannot be found or accessed
500 - INTERNAL SERVER ERROR - if something else goes wrong

アセットコメントの作成

新しいアセットコメントを作成します。

パラメーター

message - Message
annotationData - Annotation data (JSON)

リクエスト

POST /api/assets/myfolder/myasset.png/comments/* -F"message=Hello World." -F"annotationData={}"

応答コード

201 - CREATED - if Comment has been created successfully
404 - NOT FOUND - if Asset could not be found or accessed at the provided URI
412 - PRECONDITION FAILED - if root collection cannot be found or accessed
500 - INTERNAL SERVER ERROR - if something else goes wrong

フォルダーまたはアセットのコピー

指定されたパスのフォルダーまたはアセットを新しい宛先にコピーします。

リクエストヘッダー

X-Destination - a new destination URI within the API solution scope to copy the resource to
X-Depth - either 'infinity' or '0'. The value '0' only copies the resource and its properties, no children.
X-Overwrite - 'F' to prevent overwriting an existing destination

リクエスト

COPY /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-copy"

応答コード

201 - CREATED - if folder/asset has been copied to a non-existing destination
204 - NO CONTENT - if the folder/asset has been copied to an existing destination
412 - PRECONDITION FAILED - if a request header is missing or
500 - INTERNAL SERVER ERROR - if something else goes wrong

フォルダーまたはアセットの移動

指定されたパスのフォルダーまたはアセットを新しい宛先に移動します。

リクエストヘッダー

X-Destination - a new destination URI within the API solution scope to copy the resource to
X-Depth - either 'infinity' or '0'. The value '0' only copies the resource and its properties, no children.
X-Overwrite - either 'T' to force deletion of existing resources or 'F' to prevent overwriting an existing resource.

リクエスト

MOVE /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-moved"

応答コード

201 - CREATED - if folder/asset has been copied to a non-existing destination
204 - NO CONTENT - if the folder/asset has been copied to an existing destination
412 - PRECONDITION FAILED - if a request header is missing or
500 - INTERNAL SERVER ERROR - if something else goes wrong

フォルダー、アセットまたはレンディションの削除

指定されたパスのリソース(ツリー)を削除します。

リクエスト

DELETE /api/assets/myFolder

または

DELETE /api/assets/myFolder/myAsset.png

または

DELETE /api/assets/myFolder/myAsset.png/renditions/original

応答コード

200 - OK - if folder has been deleted successfully
412 - PRECONDITION FAILED - if root collection cannot be found or accessed
500 - INTERNAL SERVER ERROR - if something else goes wrong

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー