SDK-системы: инструменты интеграции

SDK предоставляет набор инструментов и API для интеграции и кастомизации системы, позволяющий работать с её функционалом без необходимости доступа к исходному коду.

Основу SDK составляют три ключевых компонента:

  • Набор объектов;

  • TypeScript-типы;

  • Автоматически генерируемая документация.

Набор объектов

Объекты для работы включают в себя классы, их экземпляры, функции и константы, которые экспортируются из различных модулей системы. Все эти элементы доступны разработчикам через глобальный объект window и предоставляют публичные API для интеграционных решений.

TypeScript-типы

TypeScript-типы обеспечивают строгую типизацию всех экспортируемых объектов. Они содержат встроенную документацию с описанием назначения каждого элемента, а также специальные пометки, указывающие на устаревшие функции, сроки прекращения их поддержки и рекомендуемые альтернативы. Это позволяет разработчикам сразу видеть актуальные способы работы с API.

Автоматически генерируемая документация

Автоматически генерируемая документация создаётся на основе TypeScript-типов, что гарантирует её полное соответствие текущей версии API. Документация включает не только технические описания, но и практические примеры использования.

Основным механизмом расширения функциональности приложения посредством SDK являются User Exits.

User-exits (точки расширения)

User Exits — это предопределенные точки расширения, позволяющие безопасно модифицировать поведение системы. Данный механизм реализует паттерн Extension Point. Точки расширения выступают мостом между ядром системы и кастомными расширениями, обеспечивая безопасное добавление пользовательских интерфейсов или бизнес-логики без доступа к исходному коду и нарушения целостности приложения.

Перечень точек расширения доступен в интерактивном руководстве кастомизации.

Регистрация User-exits возможна путем:

  • Предоставляемого SDK сервиса регистрации UE

  • Добавления пути к файлу с реализацией UE в файл пользовательской конфигурации

../../../../_images/theoryimage053.png

Безопасность и контроль:

  • Строгая типизация гарантирует, что расширения соответствуют ожидаемым параметрам и структуре данных

  • Декларация метода resolve c передачей в него определенных параметров внутри интерфейса User exit дает инструмент для разработчика управлять активностью создаваемой имплементации User Exit