Error 404 al utilizar la búsqueda de API abierta de Assets en el extremo de entrega
En este artículo se explica cómo resolver un error 404 que se encuentra al usar el punto final de búsqueda de la API de Apertura de AEM Assets en el nivel de entrega.
Descripción description
Entorno
Adobe Experience Manager as a Cloud Service (AEMaaCS) (todas las versiones)
Problema/Síntomas
Al intentar usar la API de Apertura de AEM Assets para buscar recursos activados a través del extremo documentado en la API de entrega de AEM Assets, las solicitudes al extremo de entrega (por ejemplo, https://delivery-<env>.adobeaemcloud.com/adobe/assets/search?allowUnsafeSearch=true) devuelven un error 404:
404 "No RequestProcessor can handle this request."
-
El cuerpo de la solicitud es una consulta de búsqueda estándar, como:
{ "query": [ { "match": { "text": "*", "fields": [ "assetMetadata.dc:title" ] } } ] , "limit": 10 } -
El error persiste incluso después de configurar los perfiles de producto y la autenticación en Adobe Developer Console.
-
La misma solicitud funciona como se espera cuando se envía al extremo de autor (por ejemplo,
https://author-<env>.adobeaemcloud.com/adobe/assets/search?allowUnsafeSearch=true).
Causa
La API de búsqueda solo está disponible en el nivel de creación. Las solicitudes al nivel de entrega para esta operación devuelven un error 404 porque el extremo no está implementado allí.
Resolución resolution
Nota: la operación de búsqueda no se admite en el extremo de envío. Utilice el punto final de creación para operaciones de búsqueda de recursos.
Para resolver este problema, siga estos pasos:
-
Envíe la solicitud de búsqueda de la API abierta de los AEM Assets al extremo de autor en lugar del extremo de envío mediante la dirección URL correcta, como
https://author-<env>.adobeaemcloud.com/adobe/assets/search?allowUnsafeSearch=true. -
Use una petición POST con los encabezados y el cuerpo de petición necesarios tal como se definen en la documentación de la API de AEM Assets, y ejecute la petición con el punto final correcto ejecutando un comando cURL como
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 }' -
Asegúrese de que las características de la API de Assets necesarias estén habilitadas en su entorno si el extremo del autor devuelve un error 404.