umbot
    Preparing search index...

    YandexRequest Класс для работы с API Яндекса

    Предоставляет методы для отправки запросов к API Яндекса, управления авторизацией и обработки ошибок.

    // Создание экземпляра (appContext обязателен)
    const api = new YandexRequest('your-token', appContext);

    // Установка нового токена
    api.setOAuth('new-token');

    // Выполнение запроса
    const result = await api.call<ApiResponse>('...');
    if (result) {
    // Обработка успешного ответа
    console.log(result);
    } else {
    // Обработка ошибки
    console.error('Ошибка запроса к API Яндекса');
    }

    Hierarchy (View Summary)

    Index

    Constructors

    • Создает экземпляр класса YandexRequest

      Инициализирует класс с OAuth-токеном и настраивает параметры HTTP-запросов.

      Parameters

      • Optionaloauth: string | null = null

        OAuth-токен для авторизации

      • appContext: AppContext

        Контекст приложения (обязательный параметр)

      Returns YandexRequest

      Если токен не указан, будет использован токен из appConfig.tokens.alisa.token (env-переменная ALISA_TOKEN, устаревший вариант — YANDEX_TOKEN). Если и там токена нет, запросы будут выполняться без авторизации.

      // Создание с токеном
      const api = new YandexRequest('your-token', appContext);

      // Создание без токена (будет использован ALISA_TOKEN из конфигурации)
      const api = new YandexRequest(null, appContext);

    Properties

    _appContext: AppContext

    Контекст приложения.

    _request: Request

    Экземпляр класса для отправки HTTP-запросов

    Accessors

    • get oauth(): string | null | undefined

      Возвращает установленный OAuth-токен (или null, если авторизация отключена).

      Returns string | null | undefined

    Methods

    • Формирует значение заголовка Authorization для токена.

      API Яндекс.Диалогов (загрузка изображений и звуков) принимает схему OAuth. Сервисы Yandex Cloud используют другие схемы — наследники переопределяют метод (см. YandexSpeechKit).

      Parameters

      • token: string

        Токен авторизации

      Returns string

      Значение заголовка Authorization

    • Пишет информацию об ошибках через AppContext.logError (структурированный логгер)

      Логирует детальную информацию об ошибке, включая URL запроса и текст ошибки.

      Parameters

      • Optionalerror: string | Error = ''

        Текст ошибки или объект ошибки

      Returns void

    • Выполняет HTTP-запрос к API Яндекса

      Отправляет запрос к указанному эндпоинту API и обрабатывает полученный ответ.

      Type Parameters

      • T extends IYandexApi

        Тип ожидаемого ответа, наследующий интерфейс IYandexApi

      Parameters

      • Optionalurl: string | null = null

        URL-адрес эндпоинта API

      Returns Promise<T | null>

      • Результат запроса или null в случае ошибки сети/Request
      interface MyApiResponse extends IYandexApi {
      data: {
      id: string;
      name: string;
      };
      }

      const api = new YandexRequest('token', appContext);

      // Выполнение запроса (метод не выбрасывает исключений).
      // При ошибке API ответ содержит поле error — проверяйте его явно;
      // null возвращается только при ошибке сети/Request.
      const response = await api.call<MyApiResponse>('...');

      if (response) {
      if ('error' in response) {
      // Обработка ошибки API
      console.error('Ошибка API:', response.error);
      } else {
      // Обработка успешного ответа
      console.log('ID:', response.data.id);
      console.log('Name:', response.data.name);
      }
      } else {
      // Обработка ошибки сети/Request
      console.error('Ошибка запроса к API Яндекса');
      }
    • Устанавливает OAuth-токен для авторизации

      Обновляет токен авторизации и заголовки запросов. При установке токена автоматически добавляется заголовок 'Authorization: OAuth {token}' ко всем последующим запросам.

      Parameters

      • oauth: string | null

        OAuth-токен для авторизации

      Returns void

      • Если передать null, авторизация будет отключена
      • Заголовок авторизации добавляется автоматически
      • Токен сохраняется для всех последующих запросов
      const api = new YandexRequest(null, appContext);

      // Установка нового токена
      api.setOAuth('new-token');
      // Теперь все запросы будут с заголовком:
      // Authorization: OAuth new-token

      // Сброс токена
      api.setOAuth(null);
      // Запросы будут без авторизации