Skip to content

Конфигурация

Функция init() должна быть вызвана один раз при старте приложения, до использования любых сервисов.

Параметры init()

js
init({ axios, hosts, onNotify, onError })

axios (обязательный)

Настроенный экземпляр axios с интерсепторами, токенами авторизации и другими настройками. Все сервисы используют этот экземпляр для HTTP-запросов.

js
import axios from 'axios'

const axiosInstance = axios.create({
  timeout: 30000,
})

axiosInstance.interceptors.request.use((config) => {
  config.headers.Authorization = `Bearer ${token}`
  return config
})

hosts (обязательный)

Объект с URL бэкенд-сервисов. Каждый ключ соответствует определённой группе API-эндпоинтов:

КлючОписание
businessОсновной бизнес-сервис (клиенты, воркеры, партнёры, аллокации и др.)
contactsСервис контактов
userСервис пользователей и авторизации
historyСервис истории изменений
fileФайловый сервис (загрузка/скачивание)
taskСервис задач
notificationsСервис уведомлений
documentsСервис документов и шаблонов
chatЧат-сервис
learningСервис обучения (курсы, квизы, прокторинг)
managerTimeTrackerСервис учёта рабочего времени
mondayСервис импорта и синхронизации Monday

Ключи произвольны: список выше — известные хосты (тип HostName), но hosts принимает любые строковые ключи. getHost(name) бросает ошибку при обращении к незаданному ключу.

onNotify (опциональный)

Колбэк (message: string, color?: string) => void для отображения UI-уведомлений. Вызывается через хелпер notify() пакета.

js
onNotify: (message, color) => {
  // message — строка с текстом уведомления
  // color — цвет: 'positive', 'negative', 'warning' и др.
  Notify.create({ message, color })
}

onError (опциональный)

Колбэк (error: unknown, context?: Record<string, unknown>) => void для логирования ошибок. HTTP-обёртка вызывает его при каждой ошибке запроса (перед пробросом исключения), передавая в context метаданные — например { url, method }.

js
onError: (error, context) => {
  // error — объект ошибки (ApiError, ProblemDetailsError или сетевая ошибка)
  // context — объект с метаданными запроса ({ url, method })
  console.error('[API Error]', context, error)
}

Поведение без инициализации

Если init() не был вызван, при первом обращении к сервису будет выброшено исключение:

[frontend-api-client] Not initialized. Call init() first.