en

SDK Fetch

streamvi-sdk-fetch предоставляет TypeScript-клиент StreamVi API на встроенном fetch. Сам клиент не требует Axios. Для проекта с Axios есть отдельная версия SDK.

Установка

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

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

При Git-установке npm запускает сборку библиотеки. Серверный пример из репозитория имеет свои зависимости, которые не требуются самому Fetch-клиенту.

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

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

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

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);
  return api.userProjectGetProjectInfoV1({
    language: 'ru',
    project_id: projectId,
  });
}

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

Клиент отправляет GET /method/project/get_project_info и возвращает разобранное тело ответа StreamVi. Обёртки Axios здесь нет: не добавляйте .data только ради извлечения тела HTTP-ответа. Поле data внутри самого ответа API, если оно предусмотрено методом, сохраняется.

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

Обновление

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

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

Неуспешный HTTP-ответ приводит к ResponseError с объектом response; его status содержит код HTTP. Сетевые ошибки и отсутствие обязательного параметра имеют другие типы, поэтому обработчик не должен считать любую ошибку HTTP-ответом.

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

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