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