配信エンドポイントでAssets Open API検索を使用すると404 エラーが発生する
この記事では、AEM Assets Open API検索エンドポイントをデリバリーレイヤーで使用する際に発生した404 エラーを解決する方法について説明します。
説明 description
環境
Adobe Experience Manager as a Cloud Service(AEMaaCS)(すべてのバージョン)
問題/症状
AEM Assets Open APIを使用して、AEM Assets Delivery APIに記載されているエンドポイントを介してアクティブ化されたアセットを検索しようとすると、配信エンドポイント(例:https://delivery-<env>.adobeaemcloud.com/adobe/assets/search?allowUnsafeSearch=true)へのリクエストで404 エラーが返されます。
404 "No RequestProcessor can handle this request."
-
リクエスト本文は、次のような標準的な検索クエリです。
{ "query": [ { "match": { "text": "*", "fields": [ "assetMetadata.dc:title" ] } } ] , "limit": 10 } -
このエラーは、Adobe Developer Consoleで製品プロファイルと認証を設定した後でも引き続き発生します。
-
オーサーエンドポイントに送信すると、同じリクエストが想定どおりに機能します(例:
https://author-<env>.adobeaemcloud.com/adobe/assets/search?allowUnsafeSearch=true)。
原因
検索APIは、オーサー層でのみ使用できます。 エンドポイントが実装されていないため、この操作の配信層に対するリクエストでは404 エラーが返されます。
解決策 resolution
注意:検索操作は、配信エンドポイントではサポートされていません。 アセット検索操作にオーサーエンドポイントを使用します。
この問題を解決するには、次の手順に従います。
-
AEM Assets Open API検索リクエストを、
https://author-<env>.adobeaemcloud.com/adobe/assets/search?allowUnsafeSearch=trueなどの正しいURLを使用して、配信エンドポイントではなくオーサーエンドポイントに送信します。 -
AEM Assets API ドキュメント で定義されている必須ヘッダーとリクエスト本文を使用してPOST リクエストを実行し、次のようなcURL コマンドを実行して正しいエンドポイントでリクエストを実行します
curl -u "admin:<password>" -X POST "https://author-<env>.adobeaemcloud.com/adobe/assets/search?allowUnsafeSearch=true" \ -H "Content-Type: application/json" \ -d '{ "query": [ { "match": { "text": "*", "fields": [ "assetMetadata.dc:title" ] } } ] , "limit": 10 }' -
オーサーエンドポイントが404 エラーを返す場合は、必要なAssets API機能トグルが有効になっていることを確認します。