2016-08-30 7 views
2

Ich bin neu bei Alfresco Aikau und ich verstehe einfach nicht, wie Nutzlast funktioniert. Es gibt viele Beispiele, in denen Payload verwendet wird, aber ich mache die Verbindung nicht.Aikau Grundlagen - Nutzlast 101

Alle Beispiele, die ich scheinen vorschlagen zu finden (mir, dass ist), dass die Nutzlast eine Datenliste zu definieren, verwendet wird, die geladen wird, und auf das Widget zurück.

Aber die Datenliste scheint immer eine URL zu sein, und ich nehme an das Ergebnis aus der URL ist ein JSON-Objekt.

Was ist, wenn ich ein Webscript aufrufen möchte, die ein Json-Objekt erstellen und es zurück an das Widget zurückgibt. Was wäre der Mechanismus dafür? Lade ich es in die Payload und wenn ja wie?

Hoffentlich verstehen Sie meine Verwirrung und können mich in die richtige Richtung weisen.

Dank

Antwort

2

Aikau verwendet eine Veröffentlichung/Abonnement-Modell vollständig die Widgets und Dienste alle zu entkoppeln. Eine "Nutzlast" ist das Objekt, das zu einem Thema veröffentlicht und vom Abonnenten konsumiert wird. Es gibt keinen einzelnen Payload-Typ, jedes Widget und jeder Dienst erwartet möglicherweise unterschiedliche Payloads mit unterschiedlichen Daten. Wir haben alle Themen behandelt, die von Widgets verwendet werden, und sie in ein Konstantenmodul verschoben, und die Datei JSDoc dokumentiert hierzu die Struktur jeder Nutzlast für jedes Thema.

Als Antwort auf Ihre spezifische Frage - ein Widget im Listen-Paket (das einfachste ist alfresco/lists/AlfList) wird ein Payload veröffentlichen, das die zu ladenden Daten anfordert. Listen können mit jedem Dienst verwendet werden, so dass das Thema, auf dem veröffentlicht wird, unterschiedlich ist, je nachdem, welchen Dienst Sie verwenden möchten. In ähnlicher Weise wird die veröffentlichte Nutzlast unterschiedlich sein.

Wenn Sie beispielsweise den CrudService verwenden, muss die Payload die zu ladende URL enthalten. Die meisten anderen Dienste benötigen keine URL, da sie so geschrieben sind, dass sie mit bestimmten Daten arbeiten und bekannte URLs verwenden, um diese Daten abzurufen.

Obwohl es verlockend sein könnte, die CrudService in allen Fällen zu verwenden, gibt es viele Vorteile in spezielle Dienste - einschließlich Ihren eigenen Dienste zu schreiben - zurückgeführt, um die Daten zu normalisieren (weil viele des Kerns WebScript-basierter REST APIs folgen keinem gemeinsamen Schema).

Wenn ein Dienst hat die Daten geladen wird, die Daten auf eine Antwort Thema veröffentlichen - die Nutzlast die aktuellen Listendaten enthält veröffentlicht. Noch einmal, der CrudService wird kein "Wissen" über das Datenschema haben, daher muss die Liste konfiguriert werden (unter Verwendung des Attributs "itemsProperty"), um das Attribut in der Nutzlast zu identifizieren, das das Datenfeld enthält, das die Liste darstellt gerendert).

Die Aikau tutorial auf GitHub funktioniert durch den Prozess der Erstellung von Seiten, die Listen und Ladelistendaten (aus einer Vielzahl von Quellen) verwenden - Ich würde vorschlagen, dass Sie das Tutorial durcharbeiten, wenn Sie nicht bereits haben.

Es ist auch möglich, eine Liste mit Daten (über das „Current“ Attribut) zu initialisieren, so dass Sie nicht brauchen, um eine XHR Anforderung von Daten zu machen.