Сервисы
Паттерн
Каждый сервис — это класс-синглтон, экспортируемый как единственный экземпляр:
js
import { clientService } from '@diealltagsfeen/frontend-api-client'Сигнатуры методов
Публичные методы сервисов — async функции, которые:
- Принимают параметры (примитивы или объект с деструктуризацией)
- Принимают опциональный параметр
mapperдля трансформации ответа - Возвращают данные при успехе или
nullпри ошибке
js
// Простой параметр
const client = await clientService.GetById(id, clientByIdMapper)
// Объект с параметрами
await clientService.UpdateStatus({ clientId: '...', status: 400 })
// Пагинация с фильтрами
const data = await clientService.GetTable(
{ pagination, clientStatusFilters: [101, 200] },
clientTableMapper
)Параметр mapper
Большинство Get-методов принимают опциональную функцию mapper. Если передана, ответ API проходит через неё перед возвратом:
js
// Без маппера — сырые данные из API
const raw = await clientService.GetTable({ pagination })
// С маппером — трансформированные данные
const mapped = await clientService.GetTable({ pagination }, clientTableMapper)Мапперы доступны в пакете и импортируются отдельно:
js
import { clientTableMapper, clientByIdMapper } from '@diealltagsfeen/frontend-api-client'Обработка ошибок
Сервисы никогда не бросают исключения. При ошибке HTTP-запроса или неуспешном ответе (response.data.successfully !== true) метод возвращает null:
js
const data = await clientService.GetById('invalid-id')
if (data === null) {
// Ошибка — данные не получены
}При ошибках валидации сервис может вызвать notify() для отображения UI-уведомления (если onNotify был передан в init()).
Приватные методы
Методы с префиксом _ (например, _buildTableParams, _buildCreateParams) — внутренние хелперы для построения параметров запросов. Они не предназначены для вызова извне.