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

問題を解決するには、次の手順に従います。

  1. 競合の処理に関する最新情報については、最新のFolders API ドキュメントを参照してください。
  2. フォルダー作成リクエストの結果を決定する際に、HTTP ステータスコードと応答ペイロードの両方を評価するように統合ロジックを更新します。
  3. typeがhttps://api.adobeaemcloud.com/adobe/meta/errors/conflictに設定されているエントリについて、応答ペイロードのerrors配列を確認します。
  4. 応答にこのエントリが含まれる場合は、HTTP ステータスコードに関係なく、操作を競合として扱います。
  5. ワークフローで厳格なHTTP ステータスコード処理が必要な場合は、追加のロジックを実装して、エラーの詳細について応答本文を解析します。
  6. 競合への対応に関する契約の更新または変更について、API ドキュメントとリリースノートを監視します。
  7. 既に存在するフォルダーを作成します。 HTTP ステータスコードが​ 200 ​の場合でも、応答ペイロードにerrors配列に競合エラーが含まれていることを確認してください。
recommendation-more-help
experience-cloud-kcs-help-kbarticles