Начало работы
Настройка доступа к реестру
Пакет размещён в приватном npm-реестре GitLab. Для установки необходимо настроить доступ.
Глобальный .npmrc (рекомендуется)
Добавьте в ~/.npmrc:
@diealltagsfeen:registry=https://gitlab.com/api/v4/projects/80348419/packages/npm/
//gitlab.com/api/v4/projects/80348419/packages/npm/:_authToken=<YOUR_TOKEN>Замените <YOUR_TOKEN> на персональный GitLab-токен с правом read_api.
| ОС | Путь к .npmrc |
|---|---|
| Linux | ~/.npmrc |
| macOS | ~/.npmrc |
| Windows | %USERPROFILE%\.npmrc |
Локальный .npmrc в проекте
Создайте .npmrc в корне проекта-потребителя с тем же содержимым. Обязательно добавьте .npmrc в .gitignore, чтобы токен не попал в репозиторий.
Установка
bash
npm install @diealltagsfeen/frontend-api-clientИнициализация
Перед использованием сервисов вызовите init():
js
import { init } from '@diealltagsfeen/frontend-api-client'
init({
axios: axiosInstance,
hosts: {
business: 'https://...',
contacts: 'https://...',
user: 'https://...',
history: 'https://...',
file: 'https://...',
task: 'https://...',
notifications: 'https://...',
documents: 'https://...',
chat: 'https://...',
learning: 'https://...',
managerTimeTracker: 'https://...',
monday: 'https://...',
},
onNotify: (message, color) => { /* UI уведомление */ },
onError: (error, context) => { /* логирование ошибки */ },
})Использование
После инициализации импортируйте нужные сервисы и типы DTO:
ts
import {
clientService,
type CreateClientRequestDto,
} from '@diealltagsfeen/frontend-api-client'
// Получить список клиентов (query-string строит вызывающий код)
const params = new URLSearchParams()
params.append('Pagination.CurrentPage', '1')
params.append('Pagination.RowsPerPage', '25')
params.append('ClientStatusFilters', '400')
const result = await clientService.GetTable(params.toString())
if (result) {
// result: { successfully: true, ...payload }
console.log(result)
}
// Создать клиента с типизированным телом запроса
const body: CreateClientRequestDto = { /* ... */ }
const created = await clientService.Create(body)При ошибке HTTP-запроса или неуспешном ответе бэкенда HTTP-обёртка бросает ApiError или ProblemDetailsError (и вызывает onError). Оборачивайте вызовы в try/catch, если нужно обработать ошибку:
ts
import { ApiError } from '@diealltagsfeen/frontend-api-client'
try {
const result = await clientService.GetById(123)
} catch (e) {
if (e instanceof ApiError) {
// e.status, e.title, e.data
}
}Подробнее о паттерне сервисов и обработке ответа — в разделе Сервисы.