Aikau基本原则 - 有效载荷101

时间:2016-08-30 05:38:50

标签: alfresco alfresco-share aikau

我是Alfresco Aikau的新手,我不了解有效载荷的工作原理。有许多使用有效负载但我没有建立连接的例子。

我似乎发现的所有示例(对我而言)都表示有效负载用于定义将被加载并返回到窗口小部件的数据列表。

但是,数据列表似乎总是一个网址,我假设网址的结果是一个json对象。

如果我想调用构建json对象并将其返回到窗口小部件的webscript,该怎么办?那个机制是什么?我是否将它加载到有效载荷中,如果是这样的话?

希望你理解我的困惑,并指出我正确的方向。

谢谢

1 个答案:

答案 0 :(得分:2)

Aikau使用发布/订阅模型来完全解耦所有小部件和服务。 A"有效载荷"是在主题上发布并由订阅者使用的对象。没有单一的有效负载类型,每个小部件和服务可能期望包含不同数据的不同有效负载。我们一直在研究小工具开箱即用的所有主题,并将它们移动到常量模块,JSDoc为此文档记录每个主题的每个有效负载的结构。

在回答您的具体问题时 - 列表包中的小部件(最基本的是alfresco / lists / AlfList)将发布请求加载数据的有效负载。列表可以与任何服务一起使用,因此发布的主题将根据您希望使用的服务而有所不同,同样发布的有效负载也会不同。

例如,如果您正在使用CrudService,那么有效负载将需要包含要加载的URL。大多数其他服务不需要URL,因为它们被编写为使用特定数据并使用已知URL来检索数据。

虽然在所有情况下使用CrudService可能很诱人,但使用专用服务有很多好处 - 包括编写自己的自定义服务 - 以便规范化返回的数据(因为许多基于WebScript的核心REST API)不要遵循共同的架构。

当服务加载数据时,它将在响应主题上发布数据 - 发布的有效负载将包含实际的列表数据。 CrudService再一次没有"知识"数据模式,因此需要配置列表(使用" itemsProperty"属性)来标识有效负载中包含表示要呈现的列表的数据数组的属性。

GitHub上的Aikau tutorial通过创建使用列表和加载列表数据(来自各种来源)的页面的过程来工作 - 如果您还没有,我建议您完成本教程

也可以使用数据初始化列表(通过" currentData"属性),这样您就不需要对数据发出XHR请求。