en

SDK Axios

streamvi-sdk предоставляет TypeScript-клиент StreamVi API на Axios. Подходит для серверного приложения, которое уже использует Axios. Альтернатива без этого транспорта: SDK Fetch.

Установка

Нужны Git, npm и поддерживаемая версия Node.js, совместимая с engines в package.json. Установите библиотеку из GitHub:

npm install git+https://github.com/StreamVi/streamvi-sdk.git

При Git-установке npm запускает сборку библиотеки. Папка example/ в репозитории относится к отдельному демонстрационному серверу; его переменные OAuth не нужны для каждого API-запроса.

Первый запрос

Получите access_token и внутренний числовой project_id после OAuth-подключения. Для чтения информации о проекте нужно разрешение project:read. Передайте значения в эту серверную функцию:

import { ProjectApi, StreamViSdkConfig } from 'streamvi-sdk';

export async function getProjectInfo(accessToken: string, projectId: number) {
  const config = new StreamViSdkConfig({
    accessToken,
    basePath: 'https://api-v2.streamvi.io',
  });
  const api = new ProjectApi(config.configuration);
  const response = await api.userProjectGetProjectInfoV1({
    language: 'ru',
    project_id: projectId,
  });
  return response.data;
}

Передавать v в этот вызов не нужно: SDK сам добавляет v=1 в HTTP-запрос. В сгенерированном типе параметр остался из схемы API, но он необязательный.

Клиент отправляет GET /method/project/get_project_info. response является ответом Axios, а response.data содержит тело ответа StreamVi.

Передавайте токен без префикса: StreamViSdkConfig сам добавляет заголовок Authorization: oauth .... Адрес API указан явно, поскольку в конфигурации значение по умолчанию другое: https://napi.streamvi.io. Не подставляйте внешний ID проекта вместо внутреннего.

Обновление

Перед обновлением прочитайте заметки к выпускам и проверьте TypeScript-сборку приложения. Установленную ревизию фиксирует package-lock.json; сохраните его в своём проекте.

Ошибки и повторное подключение

Обрабатывайте отклонение Promise на стороне приложения. Для HTTP-ошибки Axios статус находится в error.response?.status; при сетевом сбое ответа может не быть. Не записывайте целиком объект ошибки в публичный лог: конфигурация запроса содержит токен.

SDK не выполняет OAuth и не обновляет токен автоматически. После повторного подключения присвойте новый токен config.accessToken: следующие запросы уже созданных клиентов этой конфигурации используют его. Для разных подключений создавайте отдельные конфигурации. Секрет приложения и серверный OAuth-токен храните на сервере.

Полный серверный запуск разобран в OAuth-приложении. Список сгенерированных классов и их параметры доступны в репозитории SDK; доступ к каждому методу определяется его контрактом и разрешениями.