Anforderungen

Grundlagen

  • Grundlagen von AEM Mobile
  • Grundlagen des Erstellens und Veröffentlichens von Inhalten über das On-Demand-Portal
  • Erfahrung mit On-Demand Services APIs

Erforderliche Produkte

  • AEM Mobile
  • Zugriff auf die On-Demand Services API
  • Gemeinsame Inhalte

Einführung in gemeinsame Inhalte

Mit den On-Demand Services APIs (früher „Content Producer Service APIs“) können Entwickler von Drittanbieteranwendungen diese in On-Demand-Dienste integrieren. Dieser Dienst ermöglicht Ihnen Folgendes:

  • Verwalten von Artikeln
  • Verwalten von Sammlungen
  • Verwalten von Produkten
  • Verwalten von Push-Benachrichtigungen

Wenn Sie mehrere HTML-basierte Artikel veröffentlichen möchten, können Sie mit der Shared Content API Inhalte bündeln, die in allen diesen Artikeln verwendet werden. In diesem Artikel wird die Verwendung von gemeinsamen Inhalten erläutert.

In AEM Mobile können Sie einzelne Artikel veröffentlichen. Jeder Artikel wird durch „article_name“ gekennzeichnet. Wenn Sie gemeinsame Inhalte einrichten, lassen Sie zu, dass mehrere HTML-basierte Artikel die gleichen CSS- und JavaScript-Dateien verwenden.

Ohne gemeinsame Inhalte muss jeder HTML-Artikel eigene CSS- und JS-Dateien enthalten.

In diesem Beispiel sind die Dateien „css/style.css“ und „js/main.js“ in jedem Artikel doppelt vorhanden, wodurch viel Speicher belegt wird. Durch Verwendung von gemeinsamen Inhalten können diese Dateien in einer sharedContent-Entität hinzugefügt werden, auf die in jedem Artikel verwiesen wird.

Bei Verwendung von gemeinsamen Inhalten werden gemeinsam genutzte Dateien in einer einzelnen Entität gespeichert, auf die aus mehreren Artikeln verwiesen wird.

Grundlagen von dynamischen gemeinsamen Inhalten

Ab Release 2017.2 von AEM Mobile (6. Februar 2017) haben Sie die Möglichkeit, gemeinsame Inhalte mit dynamischen gemeinsamen Inhalten zu aktualisieren, ohne die Artikel aktualisieren zu müssen, die auf die gemeinsamen Inhalte verweisen. Bis zu diesem Release war es bei Verwendung der sharedContent-Entität erforderlich, sowohl die gemeinsamen Inhalte als auch die Artikel, die mit diesen Inhalten verknüpft sind, zu aktualisieren. App-Benutzer mussten dann auf „Aktualisieren“ tippen, um die Aktualisierungen abzurufen. In diesem Release können Sie die neue dynamicSharedContent-Entität verwenden, um freigegebene Inhalte hochzuladen. Wenn Sie die dynamischen gemeinsamen Inhalte aktualisieren und veröffentlichen, werden die Änderungen automatisch in allen Artikeln vorgenommen, die auf die Inhalte verweisen. Sie brauchen die verknüpften Artikel nicht mehr zu aktualisieren und Benutzer müssen nicht mehr auf „Aktualisieren“ tippen.

Sowohl sharedContent- als auch dynamicSharedContent-Arbeitsabläufe werden unterstützt. In diesem Abschnitt wird die Verwendung von dynamischen gemeinsamen Inhalten behandelt. Wenn Sie den früheren Arbeitsablauf für gemeinsame Inhalte verwenden möchten, ersetzen Sie an den entsprechenden Stellen dynamicSharedContent durch sharedContent.

 

Verwenden von gemeinsamen Inhalten

  1. Erstellen Sie eine Artikelentität für jeden Artikel.

  2. Laden Sie den Artikelinhalt (in einer ZIP-Datei mit „manifest.xml“) in den Erfassungsdienst hoch. Weitere Informationen finden Sie unter Erstellen von HTML-Artikeln für AEM Mobile.

  3. Erstellen Sie die Entität für gemeinsame Inhalte. Der Anforderungstext sollte Standardattribute für Entitätsmetadaten enthalten. Beachten Sie, dass in den folgenden Beispielen das Feld „sc_one“ der Name der dynamicSharedContent-Entität ist.

    PUT /publication/<projectID>/dynamicSharedContent/sc_one
  4. Rufen Sie die contentUrl der erstellten Entität ab (Teil der Antwort).

    {
        …
        "_links": {
            …
            "contentUrl": "/publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion1>/"
        }
    }
  5. Laden Sie die gemeinsamen Ressourcen in diese contentUrl hoch.

    Beispiele:

    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. Versiegeln (speichern) Sie den Inhalt der dynamicSharedContent-Entität.

    PUT /publication/<projectId>/dynamicSharedContent/sc_one;version=<entVersion>/contents
  7. Rufen Sie die aktualisierte contentUrl der versiegelten Entität ab (Teil der Antwort).

    {
        …
        "_links": {
            …
            "contentUrl": "/publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion2>/"
        }
    }
  8. Laden Sie im Artikel ein Element für symbolische Links hoch, das auf die gemeinsame contentUrl verweist. Beachten Sie, dass in den folgenden Beispielen das Feld „article_one“ sich auf den Namen der Artikelentität bezieht und das Feld „shared“ den Namen des Ordners angibt, der die gemeinsamen Inhalte enthält. Rufen Sie zunächst die aktuelle dynamicSharedContent-Entitätsversion mit einem GET-Aufruf ab. Aktualisieren Sie dann den Link zur gemeinsamen Ressource.

    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. Richten Sie zusätzliche Verweise auf andere Entitäten für gemeinsame Inhalte im gleichen Artikel ein.

    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>/"}

    Beachten Sie, dass der Header „Content-Type“ die Ressource als symbolischen Link bezeichnet. Der Name der Ressource („article_one“ in diesem Beispiel) ist die Quelle des symbolischen Links und der Inhalt des hochgeladenen Elements gibt das Ziel an.

  10. Versiegeln (speichern) Sie den Inhalt der Verweisentität.

     

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

    Inhaltselemente innerhalb von „article_one“ können jetzt auf Inhalte in der dynamicSharedContent-Entität verweisen, indem einfach das Präfix „shared“ (für „sc_one“) oder „fonts“ (für „sc_two“) verwendet wird. Der dynamicSharedContent befindet sich relativ zum HTML-Artikel im übergeordneten Ordner.

    Der HTML-Inhalt von „article_one“ würde wie folgt auf JavaScript und CSS verweisen:

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

    Schriftarten können wie folgt verfügbar gemacht werden:

    @font-face {
      font-family: "myFirstFont";
      src: "url(../fonts/Exotic_Regular.woff");
    }
  11. Veröffentlichen Sie die dynamicSharedContent-Entität für Nicht-Preflight-Apps oder lösen Sie den Preflight für Preflight-fähige Apps aus, um die Änderungen an der dynamicSharedContent-Entität an alle Artikel weiterzugeben, die einen entsprechenden Verweis enthalten.

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

Migrieren bestehender gemeinsamer Inhalte zu dynamischen gemeinsamen Inhalten

Die neuen Funktionen für gemeinsame Inhalte haben keine Auswirkungen auf bestehende Arbeitsabläufe für gemeinsame Inhalte. Wenn Sie dynamische gemeinsame Inhalte nutzen möchten, müssen Sie die bestehenden gemeinsamen Inhalte so ändern, dass der neue dynamische Arbeitsablauf unterstützt wird.

  1. Erstellen Sie eine neue dynamicSharedContent-Entität.

  2. Fügen Sie alle Elemente aus der früheren sharedContent-Entität der neuen dynamicSharedContent-Entität hinzu und versiegeln Sie den Inhalt der Entität.

  3. Aktualisieren Sie die Dateien für symbolische Links (Symlink) in allen Artikeln, sodass sie auf die neue dynamicSharedContent-Entität in der versiegelten Version verweisen.

  4. Öffnen Sie die Projektinhalte in der Vorschau (Preflight). Der dynamische Inhalt sollte in Artikeln vorhanden sein.

  5. Die neuen Funktionen für gemeinsame Inhalte haben keine Auswirkungen auf bestehende Arbeitsabläufe für gemeinsame Inhalte. Wenn Sie dynamische gemeinsame Inhalte nutzen möchten, müssen Sie die bestehenden gemeinsamen Inhalte so ändern, dass der neue dynamische Arbeitsablauf unterstützt wird.

    Nachdem Sie alle Vorbereitungen abgeschlossen haben, veröffentlichen Sie die dynamischen gemeinsamen Inhalte. Veröffentlichen Sie anschließend die Artikel, die auf die gemeinsamen Inhalte verweisen.

    Um gemeinsame Inhalte zu aktualisieren, fügen Sie Elemente in den dynamischen gemeinsamen Inhalten hinzu oder ändern Sie diese und versiegeln Sie die Entität. Öffnen Sie Artikel, die auf die gemeinsamen Inhalte verweisen, in der Vorschau und veröffentlichen Sie die dynamischen gemeinsamen Inhalte. Die Änderungen sind dann in den entsprechenden Artikeln vorhanden.

Hinweis:

Derzeit ist es nicht möglich, die Veröffentlichung dynamischer gemeinsamer Inhalte rückgängig zu machen. Solange diese Option nicht unterstützt wird, können Sie als Workaround alle Dateiinhalte aus den dynamischen gemeinsamen Inhalten entfernen und diese erneut veröffentlichen. Sie können auch den Symlink zu diesen dynamischen gemeinsamen Inhalten aus den Artikeln oder dynamischen Bannern entfernen, die auf die Inhalte verweisen.

Überlegungen zu gemeinsamen Inhalten

Wenn Sie gemeinsame Inhalte in Ihren Artikeln verwenden, muss der Viewer die gesamte Entität für den gemeinsamen Inhalt herunterladen, bevor der Artikel dargestellt werden kann. Sie können daher auch mehrere gemeinsame Inhaltsentitäten anstelle einer großen Entität erstellen, die alle gemeinsamen Inhalte enthält.

Der Pfad, unter dem die Inhalte verfügbar sind, hängt von der Erstellung des symbolischen Links ab, wie in den Schritten 8 und 9 dargestellt. In Schritt 8 wird auf „sc_one“ unter dem Pfad „shared“ verwiesen. In Schritt 9 wird auf „sc_two“ unter dem Pfad „fonts“ verwiesen. Die Funktionsweise von gemeinsamen Inhalten ist mit der von symbolischen Links unter einem Unix-Betriebssystem vergleichbar.

Gemeinsame Inhalte können nur über die On-Demand Services API verwaltet werden. Es gibt im On-Demand-Dienste-Portal derzeit keine Benutzeroberfläche zum Verwalten von gemeinsamen Inhalten.

Die On-Demand Services API enthält Beispiele für sharedContent, siehe Ordner „/sharedContent“.

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie