solver-sdk
Version:
SDK для интеграции с Code Solver Backend API (совместимо с браузером и Node.js), с поддержкой функциональности мышления (Thinking Mode)
102 lines • 4.42 kB
TypeScript
import { IHttpClient, HttpClientOptions, RequestOptions } from '../interfaces/http-client.js';
declare module 'axios' {
interface AxiosRequestConfig {
skipRetry?: boolean;
}
}
/**
* HTTP клиент для выполнения запросов к API
*
* Предоставляет методы для работы с REST API, включая обработку ошибок,
* повторные попытки и таймауты.
*/
export declare class HttpClient implements IHttpClient {
/** Базовый URL для запросов */
private readonly baseURL;
/** Опции HTTP клиента */
private readonly options;
/** Axios инстанс */
private readonly axiosInstance;
/** Среда выполнения */
private readonly environment;
/**
* Создает новый HTTP клиент
* @param {string} baseURL Базовый URL для запросов
* @param {HttpClientOptions} [options] Опции для HTTP клиента
*/
constructor(baseURL: string, options?: HttpClientOptions);
/**
* Настраивает интерцепторы Axios
*/
private setupInterceptors;
/**
* Выполняет HTTP запрос
* @param {RequestOptions} options Опции запроса
* @returns {Promise<T>} Ответ от API
*/
request<T = any>(options: RequestOptions): Promise<T>;
/**
* Выполняет GET запрос
* @param {string} url URL для запроса
* @param {Record<string, any>} [params] Query параметры
* @param {Record<string, string>} [headers] HTTP заголовки
* @returns {Promise<T>} Ответ от API
*/
get<T = any>(url: string, params?: Record<string, any>, headers?: Record<string, string>): Promise<T>;
/**
* Выполняет POST запрос
* @param {string} url URL для запроса
* @param {any} [data] Данные для отправки
* @param {Record<string, string>} [headers] HTTP заголовки
* @returns {Promise<T>} Ответ от API
*/
post<T = any>(url: string, data?: any, headers?: Record<string, string>): Promise<T>;
/**
* Выполняет PUT запрос
* @param {string} url URL для запроса
* @param {any} [data] Данные для отправки
* @param {Record<string, string>} [headers] HTTP заголовки
* @returns {Promise<T>} Ответ от API
*/
put<T = any>(url: string, data?: any, headers?: Record<string, string>): Promise<T>;
/**
* Выполняет DELETE запрос
* @param {string} url URL для запроса
* @param {Record<string, any>} [params] Query параметры
* @param {Record<string, string>} [headers] HTTP заголовки
* @returns {Promise<T>} Ответ от API
*/
delete<T = any>(url: string, params?: Record<string, any>, headers?: Record<string, string>): Promise<T>;
/**
* Выполняет PATCH запрос
* @param {string} url URL для запроса
* @param {any} [data] Данные для отправки
* @param {Record<string, string>} [headers] HTTP заголовки
* @returns {Promise<T>} Ответ от API
*/
patch<T = any>(url: string, data?: any, headers?: Record<string, string>): Promise<T>;
/**
* Выполняет POST запрос с потоковым ответом
* @param {string} url URL для запроса
* @param {any} [data] Данные для отправки
* @param {Record<string, string>} [headers] HTTP заголовки
* @returns {Promise<Response>} Объект Response с потоком данных
*/
postStream(url: string, data?: any, headers?: Record<string, string>): Promise<Response>;
/**
* Обрабатывает ошибки от Axios
* @param {any} error Ошибка от Axios
* @returns {Error} Обработанная ошибка
*/
private handleError;
/**
* Получает экземпляр Axios для тестирования
*/
get axiosConfig(): any;
/**
* Получает базовый URL API
* @returns {string} Базовый URL
*/
getBaseURL(): string;
}
//# sourceMappingURL=http-client.d.ts.map