AEM Assets API を使用してコンテンツをアップデートする方法 update-your-content
AEM ヘッドレスデベロッパージャーニーのこの部分では、REST API を使用してコンテンツフラグメントのコンテンツにアクセスし、アップデートする方法について説明します。
これまでの説明内容 story-so-far
以前の AEM ヘッドレスジャーニードキュメント(「AEM Delivery API を使用してコンテンツにアクセスする方法」)では、AEM GraphQL API を介して AEM のヘッドレスコンテンツにアクセスする方法を説明したので、次ができるはずです。
- GraphQL について大まかなレベルで理解する
- AEM GraphQL API の仕組みを理解する
- 実用的なサンプルクエリを理解する
この記事は、これらの基本事項に基づいて構築されているので、REST API を使用して AEM の既存のヘッドレスコンテンツをアップデートする方法を理解できます。
目的 objective
-
オーディエンス:経験者
-
目的:REST API を使用して、コンテンツフラグメントのコンテンツにアクセスし、アップデートする方法を説明します。
- AEM Assets HTTP API を紹介します。
- API でのコンテンツフラグメントのサポートを紹介し、説明します。
- API の詳細を説明します。
コンテンツフラグメントに Assets HTTP API が必要な理由 why-http-api
ヘッドレスジャーニーの前の段階では、AEM GraphQL API を使用してクエリを使用してコンテンツを取得する方法を学びました。
では、他の API が必要なのでしょうか?
Assets HTTP API を使用すると、コンテンツを 読み取る ことができます。また、コンテンツを 作成、アップデート、削除 することができます。これらは、GraphQL API では実行できないアクションです。
Assets REST API は、最新の Adobe Experience Manager バージョンの標準インストールで利用できます。
Assets HTTP API assets-http-api
Assets HTTP API には次の API が含まれます。
- Assets REST API
- コンテンツフラグメントをサポートしています
現在の Assets HTTP API の実装は、REST アーキテクチャスタイルに基づいており、CRUD 操作(作成、読み取り、アップデート、削除)を使用して(AEM に保存された)コンテンツにアクセスできます。
これらの操作により、API では、コンテンツサービスを JavaScript フロントエンドアプリケーションに提供することで、Adobe Experience Manager をヘッドレス CMS(コンテンツ管理システム)として動作させることができます。または、HTTP リクエストを実行して JSON 応答を処理できる他のどのようなアプリケーションにもすることができます。例えば、単一ページアプリケーション(SPA)では、フレームワークベースかカスタムかを問わず、API 経由で提供されるコンテンツ(多くの場合 JSON 形式)が必要です。
Assets HTTP API とコンテンツフラグメント assets-http-api-content-fragments
コンテンツフラグメントはヘッドレス配信に使用される、特別なタイプのアセットです。テキスト、数値、日付などの構造化データにアクセスするために使用されます。
Assets REST API の使用 using-aem-assets-rest-api
アクセス access
Assets REST API は /api/assets
エンドポイントを使用しており、アクセスするにはアセットのパス(先頭の /content/dam
を除く)が必要です。
- つまり、次の場所のアセットにアクセスするには
/content/dam/path/to/asset
- 次のリクエストが必要です。
/api/assets/path/to/asset
例えば、/content/dam/wknd/en/adventures/cycling-tuscany
にアクセスするには、/api/assets/wknd/en/adventures/cycling-tuscany.json
をリクエストします。
/api/assets
は.model
セレクターを使用する 必要はありません。/content/path/to/page
は.model
セレクターを使用する 必要があります。
操作 operation
実行する操作は HTTP メソッドで決まります。
- GET:アセットまたはフォルダーの JSON 表現を取得します
- POST:新しいアセットまたはフォルダーを作成します
- PUT:アセットまたはフォルダーのプロパティを更新します
- DELETE:アセットまたはフォルダーを削除します
サポートされているリクエストの正確な形式は、『API リファレンス』ドキュメントで定義されています。
使用方法は、特定の使用例以外にも、AEM オーサーを使用するかパブリッシュ環境を使用するかで異なることがあります。
-
作成時にはオーサーインスタンスに結び付けることを強くお勧めします(現在は、この API を使用して公開するフラグメントをレプリケートする手段はありません)。
-
AEM は要求されたコンテンツを JSON 形式でのみ提供するので、どちらからも配信できます。
-
ファイアウォールの背後で動作するメディアライブラリアプリケーションには、AEM オーサーインスタンスからのストレージと配信で十分です。
-
ライブ web 配信の場合は、AEM パブリッシュインスタンスをお勧めします。
-
/api
へのアクセスがブロックされる場合があります。読み取り/配信 read-delivery
使用方法は次のとおりです。
GET /{cfParentPath}/{cfName}.json
次に例を示します。
http://<host>/api/assets/wknd/en/adventures/cycling-tuscany.json
応答は、コンテンツがコンテンツフラグメントに構造化されたシリアル化 JSON です。参照は参照 URL として配信されます。
次の 2 通りの読み取り操作が可能です。
- 特定のコンテンツフラグメントをパスで読み取る。この場合は、コンテンツフラグメントの JSON 表現が返されます。
- コンテンツフラグメントのフォルダーをパスで読み取る。この場合は、フォルダー内のすべてのコンテンツフラグメントの JSON 表現が返されます。
作成 create
使用方法は次のとおりです。
POST /{cfParentPath}/{cfName}
本文には、作成するコンテンツフラグメントの JSON 表現を含める必要があります。これには、コンテンツフラグメント要素に設定する必要がある初期コンテンツも含まれます。cq:model
プロパティの設定が必須で、このプロパティが有効なコンテンツフラグメントモデルを指している必要があります。そうしないと、エラーが発生します。また、Content-Type
ヘッダーを追加することも必要です。これは application/json
に設定されます。
アップデート update
使用方法は次のとおりです。
PUT /{cfParentPath}/{cfName}
本文には、特定コンテンツフラグメントの更新内容の JSON 表現を含める必要があります。
これには、コンテンツフラグメントのタイトルや説明、単一のエレメント、またはすべての要素値やメタデータを使用できます。
削除 delete
使用方法は次のとおりです。
DELETE /{cfParentPath}/{cfName}
AEM Assets REST API の使用の詳細については、次を参照してください。
- Adobe Experience Manager Assets HTTP API(その他のリソース)
- AEM Assets HTTP API でのコンテンツフラグメントのサポート(その他のリソース)
次の手順 whats-next
これで、ここでの AEM ヘッドレスデベロッパージャーニーは完了です。次ができるようになったはずです。
- AEM Assets HTTP API の基本を理解する。
- この API でコンテンツフラグメントがどのようにサポートされているかを理解する。
次に、「実際に AEM ヘッドレスプロジェクトをライブにする方法」のドキュメントを確認して、AEM ヘッドレスジャーニーを続けてください。