umbot
    Preparing search index...

    Класс для отправки HTTP-запросов к API различных платформ. Используется внутри адаптеров для взаимодействия с внешними сервисами. Поддерживает различные типы запросов, заголовки и отправку файлов

    Request

    Index

    Constructors

    • Создает новый экземпляр Request. Инициализирует все поля значениями по умолчанию

      Parameters

      • appContext: AppContext

        Контекст приложения (для логирования, метрик и кастомного HTTP-клиента)

      Returns Request

    Properties

    attach: string | null

    Локальный путь к файлу или содержимое файла (isAttachContent = true); для URL используйте post

    attachName: string

    Имя параметра при отправке файла

    file
    
    customRequest: string | null

    Кастомный HTTP-метод (DELETE и т.д.)

    get: IGetParams | null

    GET-параметры запроса

    header: HeadersInit | null

    HTTP-заголовки запроса

    isAttachContent: boolean

    Тип передаваемого файла true - передается содержимое файла false - передается путь к файлу

    false
    
    isBinaryResponse: boolean = false

    Флаг, указывающий, что ожидается бинарный ответ

    isConvertJson: boolean

    Преобразование ответа: JSON → binary → text (по приоритету). true - ответ будет преобразован в JSON false - сначала проверяется isBinaryResponse (ArrayBuffer), иначе ответ возвращается как текст

    true
    
    maxTimeQuery: number | null

    Максимальное время ожидания ответа (мс). По умолчанию 2000 мс. Переопределить можно через свойство.

    post

    post: Record<string, unknown> | FormData | null

    POST-параметры запроса

    postInString: string | null

    POST-параметры запроса в виде строки

    url: string | null

    URL для отправки запроса

    HEADER_FORM_DATA: Record<string, string> = ...

    Заголовок для отправки form-data. Значение без boundary: при реальной отправке FormData этот заголовок удаляется — Content-Type с boundary проставляет сам HTTP-клиент.

    HEADER_JSON: Record<string, string> = ...

    Заголовок для JSON контента

    Methods

    • Формирует параметры для http запроса

      Returns Promise<RequestInit | undefined>

      Параметры запроса или undefined, если произошла ошибка

    • Формирует URL с GET-параметрами

      Returns string

      Полный URL с параметрами

    • Добавляет файл в FormData

      При ошибке чтения файл не добавляется — ошибка пишется в лог (appContext.logError), FormData возвращается без файла.

      Parameters

      • formData: FormData

        Объект FormData для добавления файла

      • filePath: string

        Путь к файлу

      • OptionalfileName: string

        Имя файла для отправки (опционально; по умолчанию 'file')

      Returns Promise<void>

    • Создает FormData для отправки файла

      Parameters

      • filePath: string

        Путь к файлу

      • OptionalfileName: string

        Имя файла

      Returns Promise<FormData | null>

      FormData с файлом; при ошибке чтения возвращается FormData без файла (ошибка логируется), null — только при исключении

    • Возвращает последнюю ошибку запроса

      Returns string | Error | null

      Ошибка (объект Error либо текст) или null, если ошибок не было

    • Отправляет HTTP-запрос

      После вызова инстанс сбрасывает attach/post/postInString/get/customRequest/header и связанные флаги — инстанс переиспользуется, и настройки одного вызова не должны попадать в следующий. maxTimeQuery сохраняется — это настройка клиента, а не одного вызова.

      Type Parameters

      • T

      Parameters

      • url: string | null = null

        URL для отправки запроса (если не указан, используется this.url)

      Returns Promise<IRequestSend<T>>

      Результат выполнения запроса

      const request = new Request(appContext);
      const res = await request.send('https://api.example.com/data');
      if (res.status) {
      console.log(res.data); // ответ API
      } else {
      console.error(res.err); // Error либо строка
      }