Основы Айкау - полезная нагрузка 101

Я очень новичок в Alfresco Aikau, и я просто не понимаю, как работает полезная нагрузка. Есть много примеров, когда используется полезная нагрузка, но я не устанавливаю соединение.

Все примеры, которые я, похоже, нахожу, предполагают (для меня это так), что полезная нагрузка используется для определения списка данных, который будет загружен и возвращен в виджет.

Но список данных всегда кажется URL-адресом, и я предполагаю, что результат с URL-адреса - это объект json.

Что делать, если я хочу вызвать webscript, который создает объект json и возвращает его обратно в виджет? Каков будет механизм для этого? Я загружаю это в полезную нагрузку и если так как?

Надеюсь, вы понимаете мою путаницу и можете указать мне правильное направление.

Спасибо

1 ответ

Aikau использует модель публикации / подписки, чтобы полностью отделить все виджеты и сервисы. "Полезная нагрузка" - это объект, который публикуется по теме и используется подписчиком. Не существует единого типа полезной нагрузки, каждый виджет и служба могут ожидать разные полезные нагрузки, содержащие разные данные. Мы работали над всеми темами, используемыми виджетами из коробки, и переместили их в модуль констант и JSDoc, чтобы документировать структуру каждой полезной нагрузки для каждой темы.

В ответ на ваш конкретный вопрос - виджет в пакете списков (самым основным из которых является alfresco/lists/AlfList) собирается опубликовать полезную нагрузку, запрашивающую данные для загрузки. Списки могут работать с любым сервисом, поэтому публикуемая тема будет отличаться в зависимости от того, каким сервисом вы хотите пользоваться, аналогично публикуемая полезная нагрузка будет отличаться.

Например, если вы используете CrudService, тогда полезная нагрузка должна содержать URL для загрузки. Большинству других служб не потребуется URL-адрес, поскольку они написаны для работы с конкретными данными и используют известные URL-адреса для извлечения этих данных.

Хотя может быть заманчивым использовать CrudService во всех случаях, есть много преимуществ в использовании выделенных сервисов - включая написание собственных пользовательских сервисов - для нормализации возвращаемых данных (потому что многие из основных API REST на основе WebScript не следовать общей схеме).

Когда служба загрузит данные, она опубликует данные по теме ответа - опубликованная полезная нагрузка будет содержать фактические данные списка. Еще раз, CrudService не будет иметь "знаний" о схеме данных, поэтому необходимо будет настроить список (используя атрибут "itemsProperty") для идентификации атрибута в полезной нагрузке, который содержит массив данных, представляющий список, который должен быть оказываемый).

Учебник Aikau по GitHub работает через процесс создания страниц, которые используют списки и загружают данные списков (из различных источников) - я бы посоветовал вам поработать с этим учебником, если вы этого еще не сделали.

Также возможно инициализировать список с данными (через атрибут "currentData"), чтобы вам не нужно было делать запрос XHR для данных.

Другие вопросы по тегам