umbot
Version:
Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф
110 lines (109 loc) • 4.54 kB
TypeScript
/**
* Модуль для отправки HTTP-запросов.
* Предоставляет функционал для работы с различными типами запросов и ответов
*/
import { IGetParams } from '../../utils';
import { AppContext } from '../../core';
import { IRequestSend } from '../interfaces/IRequest';
/**
* Класс для отправки HTTP-запросов к API различных платформ. Используется внутри адаптеров для взаимодействия с внешними сервисами.
* Поддерживает различные типы запросов, заголовки и отправку файлов
*
* @class Request
*/
export declare class Request {
#private;
/** Заголовок для отправки form-data */
static readonly HEADER_FORM_DATA: Record<string, string>;
/** Заголовок для JSON контента */
static readonly HEADER_JSON: Record<string, string>;
/** URL для отправки запроса */
url: string | null;
/** GET-параметры запроса */
get: IGetParams | null;
/** POST-параметры запроса */
post: Record<string, unknown> | null | FormData;
/** POST-параметры запроса в виде строки */
postInString: string | null;
/** HTTP-заголовки запроса */
header: HeadersInit | null;
/** Прикрепленный файл (URL, путь или содержимое) */
attach: string | null;
/**
* Тип передаваемого файла
* true - передается содержимое файла
* false - передается путь к файлу
* @defaultValue false
*/
isAttachContent: boolean;
/**
* Имя параметра при отправке файла
* @defaultValue file
*/
attachName: string;
/** Кастомный HTTP-метод (DELETE и т.д.) */
customRequest: string | null;
/** Максимальное время ожидания ответа (мс) */
maxTimeQuery: number | null;
/**
* Преобразование ответа в JSON
* true - ответ будет преобразован в JSON
* false - ответ будет возвращен как текст
* @defaultValue true
*/
isConvertJson: boolean;
/**
* Флаг, указывающий, что ожидается бинарный ответ
*/
isBinaryResponse: boolean;
/**
* Создает новый экземпляр Request.
* Инициализирует все поля значениями по умолчанию
*/
constructor(appContext: AppContext);
/**
* Устанавливает контекст приложения
* @param appContext
*/
setAppContext(appContext: AppContext): void;
/**
* Отправляет HTTP-запрос
*
* @param url - URL для отправки запроса (если не указан, используется this.url)
* @returns Результат выполнения запроса
*/
send<T>(url?: string | null): Promise<IRequestSend<T>>;
/**
* Формирует URL с GET-параметрами
*
* @returns {string} Полный URL с параметрами
*/
protected _getUrl(): string;
/**
* Формирует параметры для http запроса
*
* @returns {RequestInit|undefined} Параметры запроса
*/
protected _getOptions(): Promise<RequestInit | undefined>;
/**
* Добавляет файл в FormData
* @param formData
* @param filePath
* @param fileName
*/
addAttachFile(formData: FormData, filePath: string, fileName?: string): Promise<void>;
/**
* Создает FormData для отправки файла
*
* @param {string} filePath - Путь к файлу
* @param {string} [fileName] - Имя файла
* @returns {FormData|null} FormData с файлом или null в случае ошибки
*/
getAttachFile(filePath: string, fileName?: string): Promise<FormData | null>;
/**
* Возвращает текст последней ошибки
*
* @returns {string|null} Текст ошибки или null
*/
getError(): Error | string | null;
}