Конфигурация
Функция init() должна быть вызвана один раз при старте приложения, до использования любых сервисов.
Параметры init()
init({ axios, hosts, onNotify, onError })axios (обязательный)
Настроенный экземпляр axios с интерсепторами, токенами авторизации и другими настройками. Все сервисы используют этот экземпляр для HTTP-запросов.
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() пакета.
onNotify: (message, color) => {
// message — строка с текстом уведомления
// color — цвет: 'positive', 'negative', 'warning' и др.
Notify.create({ message, color })
}onError (опциональный)
Колбэк (error: unknown, context?: Record<string, unknown>) => void для логирования ошибок. HTTP-обёртка вызывает его при каждой ошибке запроса (перед пробросом исключения), передавая в context метаданные — например { url, method }.
onError: (error, context) => {
// error — объект ошибки (ApiError, ProblemDetailsError или сетевая ошибка)
// context — объект с метаданными запроса ({ url, method })
console.error('[API Error]', context, error)
}Поведение без инициализации
Если init() не был вызван, при первом обращении к сервису будет выброшено исключение:
[frontend-api-client] Not initialized. Call init() first.