SDK предоставляет набор инструментов и API для интеграции и кастомизации системы, позволяющий работать с её функционалом без необходимости доступа к исходному коду.
Основу SDK составляют три ключевых компонента:
Данный ресурс содержит описание типов всех объектов, экспортированных в SDK, а так же следующие важные документы:
Для работы с SDK полезно иметь представление об основных понятиях, концепциях и структурах данных, используемых в приложении, а именно:
Точки расширения (User Exits, UE) являются основным механизмом расширения функциональности приложения посредством SDK и представляют собой строго определенные места в системе, выполняемые при наступлении определенного события, которые возможно расширять/дополнять.
Пример реализации точки расширения во внешнем модуле:
export default {
userExits: [
{
type: 'RightHeaderItem',
moduleId: 'uniqueId',
active:true,
system: false,
resolver: () => true,
meta: {
order: 1,
},
component() {
return (
window.Universe.Vendor.React.createElement(
window.Universe.Platform.Uikit.Button,
{intent: window.Universe.Platform.Uikit.INTENT.DANGER},
Locale.i18n.t('HeaderButton>text')
)
);
},
}
]
};
В общем виде модель является реактивным объектом, который:
Модели в приложении выступают связующим звеном между данными, интерфейсом и бизнес-логикой, обеспечивая согласованность во всём приложении.
Все модели приложения наследуются от абстрактной модели Universe.Platform.Model.AbstractModel
Сервисы приложения — это набор готовых синглтон классов, управляющих ключевыми функциями системы и предоставляющих API для работы с ними. Каждый сервис отвечает за конкретную предметную область: безопасность, маршрутизация, точки расширения и тд.
Примеры сервисов приложения:
Сторы - это контейнеры данных определенных предметных областей, построенные на MobX. Они отвечают за:
Интерфейсы основных сторов приложения расположены в пакете Universe.Platform.Store
Менеджеры — это классы, отвечающие за загрузку, хранение и управление определенными типами данных. Они предоставляют удобный API для работы с данными, их преобразования и синхронизации с сервером.
Роль в архитектуре
Все менеджеры приложения наследуются от абстрактного Universe.Platform.Model.AbstractManager