Интеграция UI Kit с REST API и бизнес-логикой
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
UI Kit отвечает за интерфейс приложения. Данные для экрана и проверку прав приложение получает отдельно — через REST API Битрикс24. Связать их — задача кода приложения: получить авторизацию во фрейме, вызвать метод и передать ответ в компонент.
Откуда приложение берет авторизацию
Приложение с UI Kit открывается внутри Битрикс24, во фрейме. Токен не нужно запрашивать и хранить в коде: библиотека B24JsSDK получает данные авторизации от родительского окна Битрикс24 и сама продлевает их, когда истекает срок.
Подключение создает функция initializeB24Frame(). Пока она не отработала, вызовы REST API недоступны. Если страницу открыть не во фрейме, а напрямую в браузере, функция отклонит промис ошибкой SdkError с кодом JSSDK_CLIENT_SIDE_WARNING — поэтому вызов оборачивают в try/catch.
Не авторизуйтесь во фронтенде через вебхук. URL вебхука содержит секретный ключ, и в коде страницы его увидит любой пользователь. Вебхук подходит только для серверной части — подробнее в статье Установка и использование B24JsSDK.
Пример: список пользователей в компоненте UI Kit
Компонент запрашивает сотрудников методом user.get и выводит их в таблице UI Kit. Приложению нужен scope user.
<script setup>
import { onMounted, ref } from 'vue'
import { initializeB24Frame } from '@bitrix24/b24jssdk'
const users = ref([])
const error = ref('')
const isLoading = ref(true)
onMounted(async () => {
try {
const $b24 = await initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'user.get',
params: { FILTER: { ACTIVE: true } },
requestId: 'ui-kit-user-list'
})
if (!response.isSuccess) {
error.value = response.getErrorMessages().join('; ')
return
}
users.value = response.getData().result
} catch (sdkError) {
error.value = sdkError.message
} finally {
isLoading.value = false
}
})
</script>
<template>
<p v-if="isLoading">Загрузка</p>
<p v-else-if="error">{{ error }}</p>
<B24Table v-else :data="users" />
</template>
Что делает каждая часть:
initializeB24Frame()возвращает объект$b24с готовой авторизациейactions.v2.call.make()вызывает один метод REST API. ПараметрrequestIdнеобязателен, он уходит вместе с запросом и помогает найти его в логахisSuccessпоказывает, вернул ли Битрикс24 результат, аgetErrorMessages()отдает тексты ошибок REST APIgetData().result— данные ответа. У методаuser.getэто массив сотрудниковB24Tableпринимает массив в свойствеdata. Остальные свойства компонента описаны в документации библиотеки
Установка SDK, выбор класса подключения и работа на сервере описаны в статье Установка и использование B24JsSDK.
Подход до UI Kit
Если вы уже писали приложения для Битрикс24, то знакомы со схемой:
- интерфейс создается на PHP, HTML и Bootstrap
- внутри фрейма отображается сгенерированная разметка
- данные подгружаются методом
BX24.callMethod()изBX24.js - запросы к REST API идут напрямую из браузера или из PHP до формирования страницы
Такой подход работал и продолжает работать, но у него есть ограничения:
- интерфейс нельзя повторно использовать
- сложно реализовывать состояния: загрузка, ошибки, взаимодействие
- CSS часто приходилось писать вручную под каждый экран
- таблицу нужно не только отрисовать, но и обновлять вручную
Что поменялось
Vue принес с собой реактивный подход: теперь вы не управляете DOM напрямую. Вместо этого вы описываете, что должно быть видно на экране, а Vue сам следит за состоянием данных и обновляет интерфейс при их изменении.
Простой пример:
<script setup>
import { ref } from 'vue';
const count = ref(0);
</script>
<template>
<button @click="count++">
Нажато {{ count }} раз
</button>
</template>
Значение count — это реактивная переменная. При каждом клике значение обновляется, и интерфейс автоматически перерисовывается. Вам не нужно вручную менять HTML — Vue делает это за вас.
С UI Kit вы получаете готовые Vue-компоненты, которые реализуют всю визуальную логику за вас:
- кнопки, формы, таблицы, макеты, модальные окна
- компоненты адаптивны и соответствуют стилю Битрикс24
- вы работаете не с HTML и стилями, а с декларативными компонентами
REST API при этом остался тот же: методы, параметры и авторизация работают так же, как в BX24.js или PHP. Меняется точка вызова — из Vue-приложения методы вызывают через B24JsSDK.
Что осталось прежним
- все методы REST API работают точно так же
- методы можно вызывать из фронтенда приложения или со своего сервера
- авторизация не изменилась: OAuth-протокол для приложений, вебхуки для серверной части
- приложение по-прежнему работает внутри фрейма
Как делятся роли
|
Ответственность |
Было: PHP и BX24.js |
Стало: Vue и UI Kit |
|
Верстка |
Шаблон на PHP |
Компоненты UI Kit |
|
Вызов метода |
|
|
|
Обработка результата |
JavaScript вручную |
Реактивные переменные Vue |
|
Элементы интерфейса |
HTML и Bootstrap |
Компоненты UI Kit |
Если вы не работали с Vue
Чтобы начать, знать Vue целиком не нужно:
- компоненты UI Kit инкапсулируют поведение
- структура проектов на Vite или Nuxt простая
- достаточно понимать, как передавать данные и обрабатывать события
Начните с готовых примеров и разбирайтесь по ходу. Другой вариант — взять из UI Kit только дизайн-токены и иконки, оставшись на HTML и Tailwind CSS. Тогда компоненты и их поведение останутся недоступны.