Actualización del contenido mediante las API de AEM Assets update-your-content

En esta parte del Recorrido para desarrolladores de contenido de AEM sin encabezado, descubra cómo utilizar la API de REST para acceder y actualizar el contenido de los fragmentos de contenido.

La historia hasta ahora story-so-far

En el documento anterior del recorrido de AEM sin encabezado, Cómo acceder al contenido a través de las API de entrega de AEM, aprendió a acceder al contenido sin encabezado en AEM mediante la API de GraphQL de AEM, por lo que ahora debería poder hacer lo siguiente:

  • Tener conocimientos avanzados de GraphQL.
  • Comprender cómo funciona la API de GraphQL de AEM.
  • Comprender algunos ejemplos prácticos de consultas.

Este artículo se basa en estos aspectos básicos para que pueda comprender cómo actualizar el contenido sin encabezado existente en AEM a través de la API de REST.

Objetivo objective

  • Audiencia: avanzadas

  • Objetivo: aprender a utilizar la API de REST para acceder y actualizar el contenido de los fragmentos de contenido.

    • Presentar la API HTTP de AEM Assets.
    • Presentar y comentar la compatibilidad de los fragmentos de contenido en la API.
    • Indicar detalles de la API.

¿Por qué se necesita la API HTTP de Recursos para los fragmentos de contenido? why-http-api

En la fase anterior del recorrido sin encabezado, se ha aprendido a utilizar la API de GraphQL de AEM para recuperar el contenido mediante consultas.

Entonces, ¿por qué se necesita otra API?

La API HTTP de Recursos permite Leer su contenido, pero también Crear, Actualizar y Eliminar contenido, acciones que no son posibles con la API de GraphQL.

La API de REST de Recursos está disponible en cada instalación predeterminada de una versión reciente de Adobe Experience Manager as a Cloud Service.

API HTTP de Recursos assets-http-api

La API HTTP de Recursos incluye lo siguiente:

  • La API de REST de Recursos
  • incluye compatibilidad con los fragmentos de contenido

La implementación actual de la API HTTP de Recursos se basa en el estilo arquitectónico de REST y le permite acceder al contenido (almacenado en AEM) mediante operaciones CRUD (crear, leer, actualizar y eliminar).

Con estas operaciones, la API permite operar Adobe Experience Manager as a Cloud Service como un CMS (sistema de administración de contenido) sin encabezado al proporcionar servicios de contenido a una aplicación front-end de JavaScript. O cualquier otra aplicación que pueda ejecutar solicitudes HTTP y gestionar respuestas JSON. Por ejemplo, las aplicaciones de una sola página (SPA) basadas en marcos de trabajo o personalizados, requieren contenido proporcionado a través de una API, a menudo en formato JSON.

API HTTP de Recursos y fragmentos de contenido assets-http-api-content-fragments

Los fragmentos de contenido se utilizan para entregas sin encabezado y un fragmento de contenido es un tipo de recurso especial. Se utilizan para acceder a datos estructurados, como textos, números y fechas, entre otros.

Uso de la API REST de Recursos using-aem-assets-rest-api

Acceso access

La API REST de Recursos utiliza el punto final /api/assets y necesita la ruta del recurso para acceder a él (sin el /content/dam inicial).

  • Esto significa que para acceder al recurso en:
    • /content/dam/path/to/asset
  • Debe solicitar:
    • /api/assets/path/to/asset

Por ejemplo, para acceder a /content/dam/wknd/en/adventures/cycling-tuscany, solicite /api/assets/wknd/en/adventures/cycling-tuscany.json

NOTE
Acceso:
  • /api/assets no necesita el uso del selector .model.
  • /content/path/to/page necesita el uso del selector .model.

Operación operation

El método HTTP determina la operación que se va a ejecutar:

  • GET: recuperar una representación JSON de un recurso o una carpeta.
  • POST: crear nuevos recursos o carpetas.
  • PUT: actualizar las propiedades de un recurso o carpeta.
  • DELETE: eliminar un recurso o carpeta.
NOTE
El cuerpo de solicitud o los parámetros de URL se pueden usar para configurar algunas de estas operaciones; por ejemplo, definir que una carpeta o un recurso deben crearse mediante una solicitud POST.

El formato exacto de las solicitudes compatibles se define en la documentación de referencia de la API.

El uso puede variar en función de si utiliza un entorno de publicación o autor de AEM, junto con el caso de uso específico.

  • Se recomienda encarecidamente que la creación esté vinculada a una instancia de autor (actualmente, no hay forma de replicar un fragmento para publicarlo con esta API).

  • La entrega es posible desde ambos, ya que AEM sirve contenido solicitado solo en formato JSON.

    • El almacenamiento y el envío desde una instancia de autor de AEM deben ser suficientes para las aplicaciones de la biblioteca de medios, detrás del cortafuegos.

    • Para la entrega web activa, se recomienda una instancia de publicación de AEM.

CAUTION
La configuración de Dispatcher en instancias en la nube de AEM puede bloquear el acceso a /api.

Lectura/entrega read-delivery

El uso se realiza mediante:

GET /{cfParentPath}/{cfName}.json

Por ejemplo:

http://<host>/api/assets/wknd/en/adventures/cycling-tuscany.json

La respuesta es un archivo JSON serializado con el contenido estructurado como en el fragmento de contenido. Las referencias se envían como direcciones URL de referencia.

Se pueden realizar dos tipos de operaciones de lectura:

  • Al leer un fragmento de contenido específico por la ruta, se devuelve la representación JSON del fragmento de contenido.
  • Lectura de una carpeta de fragmentos de contenido por la ruta: se devuelven las representaciones JSON de todos los fragmentos de contenido de la carpeta.

Crear create

El uso se realiza mediante:

POST /{cfParentPath}/{cfName}

El cuerpo debe contener una representación JSON del fragmento de contenido que se va a crear, incluido cualquier contenido inicial que se deba establecer en los elementos del fragmento de contenido. Es obligatorio establecer la propiedad cq:model y debe señalar a un modelo de fragmento de contenido válido. Si no lo hace, se producirá un error. También es necesario añadir el encabezado Content-Type que se establece en application/json.

Actualizar update

El uso se realiza mediante

PUT /{cfParentPath}/{cfName}

El cuerpo debe contener una representación JSON de lo que se debe actualizar para el fragmento de contenido determinado.

Puede ser simplemente el título o la descripción de un fragmento de contenido, o un solo elemento, o todos los valores de elementos o metadatos.

Eliminar delete

El uso se realiza mediante lo siguiente:

DELETE /{cfParentPath}/{cfName}

Para obtener más información sobre el uso de la API de REST de AEM Assets, consulte lo siguiente:

  • API HTTP de Adobe Experience Manager Assets (recursos adicionales)
  • Compatibilidad con los fragmentos de contenido en la API HTTP de AEM Assets (recursos adicionales)

Siguientes pasos whats-next

Ahora que ha completado esta parte del recorrido para desarrolladores de AEM sin encabezado, debería poder hacer lo siguiente:

  • Comprender los conceptos básicos de la API HTTP de AEM Assets.
  • Comprender cómo se admiten los fragmentos de contenido en esta API.

Debe continuar con su recorrido sin encabezado AEM revisando a continuación el documento Cómo ponerlo todo junto: su aplicación y su contenido en AEM sin encabezado donde se familiarizará con los conceptos básicos de la arquitectura de AEM y las herramientas que necesita utilizar para montar su aplicación.

Recursos adicionales additional-resources

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab