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; доступ к каждому методу определяется его контрактом и разрешениями.