AEM Folders APIは、既存のフォルダーのHTTP 409ではなくHTTP 200を返します
フォルダー作成リクエストが既存のフォルダーを対象としている場合、Adobe Experience Manager as a Cloud Service (AEMaaCS) Folders APIは HTTP 200 OK を返します。 最近の変更では、HTTP 409 Conflictを返す代わりに、応答ペイロードに競合の詳細が提供されます。これは、HTTP ステータスコードのみに依存する統合に影響する可能性があります。 この問題を解決するには、応答ペイロードのerrors配列を評価し、競合エントリを失敗したフォルダー作成操作として扱います。
説明 description
環境
Adobe Experience Manager as a Cloud Service(AEMaaCS)、すべてのバージョン
問題/症状
-
AEM Folders APIを使用して既に存在するフォルダーを作成すると、APIはHTTP 200 OK ステータスコードを返します。
-
応答ペイロードには、HTTP 409 Conflict ステータスコードを返す代わりに、競合エラーが含まれています(以前の説明を参照)。
-
エンドポイントの例:
POST /adobe/folders -
リクエストのサンプル:フォルダーのパスとタイトルを指定するJSON本文を使用して、
POSTリクエストを/adobe/foldersに送信します。 -
実際の応答の例:
code language-none { "operation": "adobe.folders.createFolders", "status": 200, "description": "Created folders", "data": { "values": { "successes": [ ] } }, "errors": [ { "type": "https://api.adobeaemcloud.com/adobe/meta/errors/conflict", "title": "Conflict", "detail": "An entity already exists at /content/dam/example/path/to/folder" } ] , "warnings": [ ] }
根本原因
フォルダーAPI動作の最近の変更は、フォルダー作成の競合に対して HTTP 200 OK を返し、HTTP 409 Conflict ステータスコードを返す代わりに、応答ペイロードに競合の詳細を提供します。 この変更は、公開ドキュメントにまだ表示されない場合があります。
解決策 resolution
問題を解決するには、次の手順に従います。
- 競合の処理に関する最新情報については、最新のFolders API ドキュメントを参照してください。
- フォルダー作成リクエストの結果を決定する際に、HTTP ステータスコードと応答ペイロードの両方を評価するように統合ロジックを更新します。
typeがhttps://api.adobeaemcloud.com/adobe/meta/errors/conflictに設定されているエントリについて、応答ペイロードのerrors配列を確認します。- 応答にこのエントリが含まれる場合は、HTTP ステータスコードに関係なく、操作を競合として扱います。
- ワークフローで厳格なHTTP ステータスコード処理が必要な場合は、追加のロジックを実装して、エラーの詳細について応答本文を解析します。
- 競合への対応に関する契約の更新または変更について、API ドキュメントとリリースノートを監視します。
- 既に存在するフォルダーを作成します。 HTTP ステータスコードが 200 の場合でも、応答ペイロードに
errors配列に競合エラーが含まれていることを確認してください。
recommendation-more-help
experience-cloud-kcs-help-kbarticles