Show Menu
トピック×

Assets HTTP API

概要

Assets HTTP API を使用すれば、デジタルアセット(メタデータ、レンディション、コメントのほか、Experience Manager コンテンツフラグメントを使用した構造化コンテンツも含む)に対して作成、読み取り、更新、削除(CRUD)操作を実行できます。この API は /api/assets で公開されており、REST API として実装されています。 コンテンツフラグメントをサポート しています。
この API にアクセスするには、次の手順を実行します。
  1. API サービスドキュメント( https://[hostname]:[port]/api.json )を開きます。
  2. https://[hostname]:[server]/api/assets.json への Assets サービスリンクをクリックします。
API の応答は、一部の MIME タイプに対する JSON ファイル、およびすべての MIME タイプに対する応答コードです。JSON 応答はオプションであり、PDF ファイルなどでは利用できない場合があります。詳細な分析やアクションをおこなう場合は、応答コードを利用します。
オフタイムの経過後、アセットとそのレンディションは、Assets Web インターフェイスでも HTTP API でも使用できません。オンタイムが未来の場合、またはオフタイムが過去の場合、API は 404 エラーメッセージを返します。
アセットやバイナリ一般(レンディションなど)のアップロードまたは更新に関連する API 呼び出しはすべて、AEM as a Cloud Service デプロイメントでは廃止されます。バイナリをアップロードする場合は、代わりに、 直接バイナリアップロード API を使用します。

コンテンツフラグメント

コンテンツフラグメント は特殊なタイプのアセットです。テキスト、数値、日付などの構造化データにアクセスするために使用できます。 standard アセット(画像やドキュメントなど)とはいくつかの違いがあるので、コンテンツフラグメントの処理にはいくつかの追加ルールが適用されます。

データモデル

Assets HTTP API は、フォルダーとアセット(標準アセット用)という 2 つの主要要素を公開します。
さらに、コンテンツフラグメント内の構造化コンテンツを記述するカスタムデータモデルに対する詳細な要素が公開されます。詳しくは、 コンテンツフラグメントのデータモデル を参照してください。

フォルダー

フォルダーは、従来のファイルシステムにおけるディレクトリに似ています。フォルダーは、他のフォルダーまたはアセットのコンテナです。フォルダーには、以下のコンポーネントがあります。
エンティティ :フォルダーのエンティティはフォルダーの子要素で、フォルダーまたはアセットです。
プロパティ
  • name はフォルダーの名前です。これは、URL パスの最後のセグメント(拡張子を除く)と同じです。
  • title は名前の代わりに表示できるフォルダータイトル(オプション)です。
フォルダーまたはアセットの一部のプロパティは、異なるプレフィックスにマップされます。 jcr:title jcr:description jcr:language jcr プレフィックスは dc プレフィックスに置き換えられます。したがって、返された JSON コードで、 dc:title dc:description にはそれぞれ jcr:title jcr:description の値が含まれています。
リンク ​フォルダーは、次の 3 つのリンクを公開します。
  • self :自分自身へのリンク。
  • parent :親フォルダーへのリンク。
  • thumbnail :(オプション)フォルダーのサムネール画像へのリンク。

Assets

Experience Manager では、アセットには次の要素が含まれています。
  • アセットのプロパティとメタデータ
  • オリジナルのレンディション(最初にアップロードされたアセット)、サムネール、その他の各種レンディションなど複数のレンディション。追加レンディションは、サイズやビデオエンコーディングの異なる画像や、PDF ファイルまたは Adobe InDesign ファイルから抽出されたページの場合があります。
  • コメント(オプション)
コンテンツフラグメントの要素については、 AEM Assets HTTP API でのコンテンツフラグメントのサポート を参照してください。
Experience Manager では、フォルダーには次のコンポーネントが含まれています。
  • エンティティ:アセットの子はアセットのレンディションです。
  • プロパティ
  • リンク

使用可能な機能

Assets HTTP API には、以下の機能が含まれます。
  • フォルダーリストの取得
  • フォルダーの作成
  • アセットの作成(廃止)
  • アセットバイナリの更新(廃止)
  • アセットメタデータの更新
  • アセットレンディションの作成
  • アセットレンディションの更新
  • アセットコメントの作成
  • フォルダーまたはアセットのコピー
  • フォルダーまたはアセットの移動
  • フォルダー、アセットまたはレンディションの削除
読みやすいように、以下の例では、すべての cURL 表記法を省略しています。実際には、この表記法は Resty cURL 用のスクリプトラッパー)と関連があります。

フォルダーのリストの取得

既存のフォルダーとその子エンティティ(サブフォルダーまたはアセット)の Siren 表現を取得します。
リクエスト GET /api/assets/myFolder.json
応答コード :応答コードは次のとおりです。
  • 200 - OK(成功)
  • 404 - NOT FOUND(フォルダーが存在しないかアクセスできない)
  • 500 - INTERNAL SERVER ERROR(他に問題がある場合)
応答 :返されるエンティティのクラスはアセットまたはフォルダーです。含まれるエンティティのプロパティは、各エンティティの完全なプロパティセットのサブセットです。エンティティのすべての表現を取得するために、クライアントは rel self となっているリンクで参照される URL のコンテンツを取得する必要があります。

フォルダーの作成

指定されたパスに新しい sling : OrderedFolder を作成します。ノード名の代わりに「 * 」が指定されている場合、サーブレットパラメーター名がノード名として使用されます。リクエストデータとして受け入れられるのは、新しいフォルダーの Siren 表現か、 application/www-form-urlencoded または multipart / form - data としてエンコードされた名前と値のペアのセットで、HTML フォームから直接フォルダーを作成するのに役立ちます。さらに、フォルダーのプロパティを URL クエリパラメーターとして指定できます。
指定されたパスの親ノードが存在しない場合、API 呼び出しは失敗し、応答コード 500 が返されます。フォルダーが既に存在する場合、呼び出しは応答コード 409 を返します。
パラメーター 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(作成が成功した場合)
  • 409 - CONFLICT(フォルダーが既に存在する場合)
  • 412 - PRECONDITION FAILED(ルートコレクションが見つからないかアクセスできない場合)
  • 500 - INTERNAL SERVER ERROR(他に問題がある場合)

アセットの作成

API を使用してアセットを作成する方法については、 アセットのアップロード を参照してください。HTTP API を使用したアセットの作成は非推奨(廃止予定)となりました。

アセットバイナリの更新

API を使用してアセットバイナリを更新する方法については、 アセットのアップロード を参照してください。HTTP API を使用したアセットバイナリの更新は非推奨(廃止予定)となりました。

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

アセットメタデータのプロパティを更新します。 dc: 名前空間内のプロパティを更新すると、APIは jcr 名前空間内の同じプロパティを更新します。API は 2 つの名前空間内のプロパティを同期させません。
リクエスト PUT /api/assets/myfolder/myAsset.png -H"Content-Type: application/json" -d '{"class":"asset", "properties":{"dc:title":"My Asset"}}'
応答コード :応答コードは次のとおりです。
  • 200 - OK(アセットが正常に更新された場合)
  • 404 - NOT FOUND(指定した URI でアセットが見つからなかったかアクセスできなかった場合)
  • 412 - PRECONDITION FAILED(ルートコレクションが見つからないかアクセスできない場合)
  • 500 - INTERNAL SERVER ERROR(他に問題がある場合)

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

アセットの新しいアセットレンディションを作成します。リクエストパラメーター名が指定されない場合、ファイル名がレンディション名として使用されます。
パラメーター :パラメーターは name (レンディションの名前)と file (ファイル参照)です。
リクエスト
  • 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(レンディションが正常に作成された場合)
  • 404 - NOT FOUND(指定した URI でアセットが見つからなかったかアクセスできなかった場合)
  • 412 - PRECONDITION FAILED(ルートコレクションが見つからないかアクセスできない場合)
  • 500 - INTERNAL SERVER ERROR(他に問題がある場合)

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

アセットレンディションをそれぞれ新しいバイナリデータで置き換えて更新します。
リクエスト PUT /api/assets/myfolder/myasset.png/renditions/myRendition.png -H"Content-Type: image/png" --data-binary @myRendition.png
応答コード :応答コードは次のとおりです。
  • 200 - OK(レンディションが正常に更新された場合)
  • 404 - NOT FOUND(指定した URI でアセットが見つからなかったかアクセスできなかった場合)
  • 412 - PRECONDITION FAILED(ルートコレクションが見つからないかアクセスできない場合)
  • 500 - INTERNAL SERVER ERROR(他に問題がある場合)

アセットへのコメントの追加

新しいアセットコメントを作成します。
パラメーター :パラメーターは message (コメントのメッセージ本文)と annotationData (JSON 形式の注釈データ)です。
リクエスト POST /api/assets/myfolder/myasset.png/comments/* -F"message=Hello World." -F"annotationData={}"
応答コード :応答コードは次のとおりです。
  • 201 - CREATED(コメントが正常に作成された場合)
  • 404 - NOT FOUND(指定した URI でアセットが見つからなかったかアクセスできなかった場合)
  • 412 - PRECONDITION FAILED(ルートコレクションが見つからないかアクセスできない場合)
  • 500 - INTERNAL SERVER ERROR(他に問題がある場合)

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

指定されたパスに存在するフォルダーまたはアセットを新しい宛先にコピーします。
リクエストヘッダー :パラメーターは次のとおりです。
  • X-Destination - API ソリューション範囲内の、リソースのコピー先となる新しい宛先 URI
  • X-Depth - infinity 0 のいずれか。 0 を使用すると、リソースとそのプロパティのみがコピーされ、子はコピーされません。
  • X-Overwrite - 既存の宛先にあるアセットが上書きされないようにするには、 F を使用します。
リクエスト COPY /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-copy"
応答コード :応答コードは次のとおりです。
  • 201 - CREATED(フォルダーやアセットが既存でない宛先にコピーされた場合)
  • 204 - NO CONTENT(フォルダーまたはアセットが既存の宛先にコピーされた場合)
  • 412 - PRECONDITION FAILED(リクエストヘッダーが不明な場合)
  • 500 - INTERNAL SERVER ERROR(他に問題がある場合)

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

指定されたパスのフォルダーまたはアセットを新しい宛先に移動します。
リクエストヘッダー :パラメーターは次のとおりです。
  • X-Destination - API ソリューション範囲内の、リソースのコピー先となる新しい宛先 URI
  • X-Depth - infinity 0 のいずれか。 0 を使用すると、リソースとそのプロパティのみがコピーされ、子はコピーされません。
  • X-Overwrite - 既存のリソースを強制的に削除する場合は T を、既存リソースの上書きを防ぐ場合は F を使用します。
リクエスト MOVE /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-moved"
応答コード :応答コードは次のとおりです。
  • 201 - CREATED(フォルダーやアセットが既存でない宛先にコピーされた場合)
  • 204 - NO CONTENT(フォルダーまたはアセットが既存の宛先にコピーされた場合)
  • 412 - PRECONDITION FAILED(リクエストヘッダーが不明な場合)
  • 500 - INTERNAL SERVER ERROR(他に問題がある場合)

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

指定されたパスのリソース(ツリー)を削除します。
リクエスト
  • DELETE /api/assets/myFolder
  • DELETE /api/assets/myFolder/myAsset.png
  • DELETE /api/assets/myFolder/myAsset.png/renditions/original
応答コード :応答コードは次のとおりです。
  • 200 - OK(フォルダーが正常に削除された場合)
  • 412 - PRECONDITION FAILED(ルートコレクションが見つからないかアクセスできない場合)
  • 500 - INTERNAL SERVER ERROR(他に問題がある場合)