我是Alfresco Aikau的新手,我不了解有效载荷的工作原理。有许多使用有效负载但我没有建立连接的例子。
我似乎发现的所有示例(对我而言)都表示有效负载用于定义将被加载并返回到窗口小部件的数据列表。
但是,数据列表似乎总是一个网址,我假设网址的结果是一个json对象。
如果我想调用构建json对象并将其返回到窗口小部件的webscript,该怎么办?那个机制是什么?我是否将它加载到有效载荷中,如果是这样的话?
希望你理解我的困惑,并指出我正确的方向。
谢谢
答案 0 :(得分:2)
Aikau使用发布/订阅模型来完全解耦所有小部件和服务。 A"有效载荷"是在主题上发布并由订阅者使用的对象。没有单一的有效负载类型,每个小部件和服务可能期望包含不同数据的不同有效负载。我们一直在研究小工具开箱即用的所有主题,并将它们移动到常量模块,JSDoc为此文档记录每个主题的每个有效负载的结构。
在回答您的具体问题时 - 列表包中的小部件(最基本的是alfresco / lists / AlfList)将发布请求加载数据的有效负载。列表可以与任何服务一起使用,因此发布的主题将根据您希望使用的服务而有所不同,同样发布的有效负载也会不同。
例如,如果您正在使用CrudService,那么有效负载将需要包含要加载的URL。大多数其他服务不需要URL,因为它们被编写为使用特定数据并使用已知URL来检索数据。
虽然在所有情况下使用CrudService可能很诱人,但使用专用服务有很多好处 - 包括编写自己的自定义服务 - 以便规范化返回的数据(因为许多基于WebScript的核心REST API)不要遵循共同的架构。
当服务加载数据时,它将在响应主题上发布数据 - 发布的有效负载将包含实际的列表数据。 CrudService再一次没有"知识"数据模式,因此需要配置列表(使用" itemsProperty"属性)来标识有效负载中包含表示要呈现的列表的数据数组的属性。
GitHub上的Aikau tutorial通过创建使用列表和加载列表数据(来自各种来源)的页面的过程来工作 - 如果您还没有,我建议您完成本教程
也可以使用数据初始化列表(通过" currentData"属性),这样您就不需要对数据发出XHR请求。