Requisitos

Conocimientos previos necesarios

  • Explicación de AEM Mobile
  • Conocimientos sobre creación y publicación de contenido a través de On-Demand Portal
  • Experiencia con las On-Demand Services API

Productos requeridos

  • AEM Mobile
  • Acceso a la On-Demand Services API
  • Contenido compartido

Introducción al contenido compartido

Las On-Demand Services API (anteriormente denominadas “Content Producer Service API”) permiten que un desarrollador externo se integre con On-Demand Services. Este servicio le permite realizar lo siguiente:

  • Gestionar artículos
  • Gestionar colecciones
  • Gestionar productos
  • Gestionar notificaciones push

Cuando desee publicar varios artículos basados en HTML, puede usar Shared Content API para empaquetar el contenido que se comparte entre estos artículos. Este artículo explica cómo utilizar el contenido compartido.

En AEM Mobile, puede publicar artículos individuales. Cada artículo se identifica mediante su nombre de artículo (article_name). Cuando configura el contenido compartido, permite que varios artículos basados en HTML utilicen los mismos archivos CSS y JavaScript.

Sin utilizar el contenido compartido, cada artículo HTML debe incluir los archivos CSS y JS.

En este ejemplo, los archivos “css/style.css” y “js/main.js” se duplican en todos los artículos, lo que provoca sobrecarga. Al utilizar contenido compartido, estos archivos pueden añadirse en una entidad sharedContent y ser referenciados por cada artículo.

Al utilizar el contenido compartido, los archivos compartidos se almacenan en una única entidad y son referenciados por varios artículos.

Aspectos básicos del contenido compartido dinámico

Con la versión 2017.2 de AEM Mobile (6 de febrero de 2017), el contenido compartido dinámico le permite actualizar contenido compartido sin necesidad de actualizar los artículos que hacen referencia a dicho contenido. Antes de esta versión, si utilizaba la entidad sharedContent, tenía que actualizar tanto el contenido compartido como los artículos vinculados a ese contenido. Después, se solicitaba a los usuarios de la aplicación que seleccionaran la opción correspondiente para obtener las actualizaciones. Con esta versión, puede utilizar la nueva entidad dynamicSharedContent para cargar contenido compartido. Al actualizar el contenido compartido dinámico y publicarlo, los cambios se realizan automáticamente en todos los artículos correspondientes. Ya no tendrá que actualizar los artículos vinculados ni los usuarios tendrán que tocar la opción de actualización.

Ambos flujos de trabajo, sharedContent y dynamicSharedContent, son compatibles. Esta sección se centra en el uso de contenido compartido dinámico. Si, por el contrario, desea utilizar el flujo de trabajo de contenido compartido anterior, utilice sharedContent en lugar de dynamicSharedContent donde corresponda.

 

Uso de contenido compartido

  1. Cree una entidad de artículo para cada artículo.

  2. Cargue los contenidos del artículo (comprimidos con el manifest.xml) en el servicio de inserción. Para obtener más información, consulte Creación de artículos HTML para AEM Mobile.

  3. Cree la entidad de contenido compartido. El cuerpo de la solicitud debe contener atributos de metadatos de entidad estándar. Tenga en cuenta que, en los siguientes ejemplos, el campo “sc_one” es el nombre de la entidad dynamicSharedContent.

    PUT /publication/<projectID>/dynamicSharedContent/sc_one
  4. Obtenga la contentUrl de la entidad creada resultante (parte de la respuesta).

    {
        …
        "_links": {
            …
            "contentUrl": "/publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion1>/"
        }
    }
  5. Cargue los activos compartidos en esta contentUrl.

    Ejemplos:

    PUT /publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion1>/css/style.css
    PUT /publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion1>/js/main.js
  6. Selle (apruebe) el contenido de la entidad dynamicSharedContent.

    PUT /publication/<projectId>/dynamicSharedContent/sc_one;version=<entVersion>/contents
  7. Obtenga la contentUrl actualizada de la entidad sellada (parte de la respuesta).

    {
        …
        "_links": {
            …
            "contentUrl": "/publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion2>/"
        }
    }
  8. En el artículo, cargue un recurso de vínculo simbólico que haga referencia a la contentUrl compartida.  Tenga en cuenta que, en los siguientes ejemplos, el campo “article_one” se aplica al nombre del artículo y el campo “compartido” se refiere al nombre de la carpeta que albergará los contenidos compartidos. En primer lugar, obtenga la última versión de la entidad dynamicSharedContent mediante una llamada GET. A continuación, actualice el vínculo al recurso compartido.

    PUT /publication/<projectId>/article/article_one/contents;contentVersion=<cVersion3>/dynamicShared
    Content-Type:  application/vnd.adobe.symboliclink+json
    {"href": "/publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion2>/"}
  9. Configure las referencias adicionales a otra entidad de contenido compartido en el mismo artículo.

    PUT /publication/<projectId>/article/article_one/contents;contentVersion=<cVersion3>/fonts
    Content-Type:  application/vnd.adobe.symboliclink+json
    {"href": "/publication/<projectId>/dynamicSharedContent/sc_two/contents;contentVersion=<cVersion2>/"}

    Tenga en cuenta que el encabezado de tipo de contenido identifica este recurso como un vínculo simbólico, el nombre del recurso (“article_one” en el ejemplo) identifica el origen del vínculo simbólico, y el contenido del recurso cargado identifica el destino.

  10. Selle (apruebe) el contenido de la entidad correspondiente.

     

    PUT /publication/<projectId>/article/article_one;version=<entVersion>/contents

    Ahora los elementos del contenido dentro de article_one pueden hacer referencia al contenido de la entidad dynamicSharedContent con solo utilizar el prefijo “shared” (para sc_one) y “fonts” (para sc_two). Las entidades dynamicSharedContent se ubican de forma relativa al artículo HTML, un directorio por encima.

    El contenido HTML de article_one haría referencia al JavaScript y css de la siguiente forma:

    <script src="../shared/js/logic.js"></script>
    <link rel="stylesheet" type="text/css" href="../shared/css/style.css">

    Puede permitirse que las fuentes estén disponibles de la siguiente manera:

    @font-face {
      font-family: "myFirstFont";
      src: "url(../fonts/Exotic_Regular.woff");
    }
  11. Publique la entidad dynamicSharedContent de las aplicaciones que no sean de verificación previa o active la verificación previa de las aplicaciones que sí lo sean con el fin de propagar los cambios de la entidad dynamicSharedContent a todos los artículos correspondientes.

    PUT /job
    {
        "workflowType": "publish",
        "entity": {
            "/publication/dynamicSharedContent/sc_one;version=<entVersion>"
        }
    }

Migración de contenido compartido existente a contenido compartido dinámico

Las nuevas funciones de contenido compartido no influyen en los flujos de trabajo existentes relacionados con dicho contenido compartido. Si quiere aprovechar el contenido compartido dinámico, debe cambiar el contenido compartido existente para activar el nuevo flujo de trabajo dinámico.

  1. Cree una nueva entidad dynamicSharedContent.

  2. Añada todos los elementos de la entidad sharedContent anterior a la nueva entidad dynamicSharedContent y selle los contenidos.

  3. Actualice los archivos de vínculo simbólico (symlink) en cada artículo para que se dirijan a la nueva entidad dynamicSharedContent de la versión sellada.

  4. Genere la vista previa (verificación previa) del contenido del proyecto. El contenido dinámico debería estar disponible en los artículos.

  5. Las nuevas funciones de contenido compartido no influyen en los flujos de trabajo existentes relacionados con dicho contenido compartido. Si quiere aprovechar el contenido compartido dinámico, debe cambiar el contenido compartido existente para activar el nuevo flujo de trabajo dinámico.

    Cuando esté preparado para hacer la publicación, publique el contenido compartido dinámico. A continuación, publique los artículos que hacen referencia al contenido compartido.

    Para actualizar el contenido compartido, añada o cambie los elementos del contenido compartido dinámico y selle la entidad. Genere la vista previa de los artículos que hacen referencia al contenido compartido y, después, publique el contenido compartido dinámico. Los cambios se reflejarán en los artículos correspondientes.

Nota:

Actualmente, no se puede cancelar la publicación del contenido compartido dinámico. Una solución temporal hasta que se ofrezca tal posibilidad consiste en quitar todos los contenidos de los archivos del contenido compartido dinámico y volver a publicarlos. Asimismo, puede quitar el vínculo simbólico a este contenido compartido dinámico de los artículos o las pancartas dinámicas vinculados.

Consideraciones relativas al contenido compartido

Cuando utiliza contenido compartido en sus artículos, el visor debe descargar la entidad de contenido compartido completa antes de que pueda mostrarse el artículo. Plantéese la posibilidad de crear varias entidades de contenido compartido en vez de una entidad de mayor tamaño que incluya todo el contenido compartido.

La ruta en la cual está disponible el contenido depende de la creación del enlace simbólico, tal y como se muestra en los pasos 8 y 9. En el paso 8, se hace referencia a sc_one en la ruta “compartido”. En el paso 9, se hace referencia a sc_two en la ruta “fuentes”. Puede comparar las formas en que funciona el contenido compartido mediante vínculos simbólicos en un sistema operativo Unix.

El contenido compartido solo se puede administrar mediante la On-Demand Services API. Actualmente, no existe ninguna interfaz de usuario en el portal de servicios bajo demanda para gestionar el contenido compartido.

Las On-Demand Services API incluyen ejemplos de sharedContent; consulte la carpeta /sharedContent.

Esta obra está autorizada con arreglo a la licencia de Reconocimiento-NoComercial-CompartirIgual 3.0 Unported de Creative Commons.  Los términos de Creative Commons no cubren las publicaciones en Twitter™ y Facebook.

Avisos legales   |   Política de privacidad en línea