imba-uni-request
Version:
uniapp框架封装的请求包 imba-uni-request
140 lines (139 loc) • 3.88 kB
TypeScript
import type { options_DTYPE, RequestConfig_DTYPE, METHOD_DTYPE, Inject_DTYPE } from './types/imba-uni-request';
import type { InterceptorsImpl_DTYPE } from './types/imba-uni-interceptor';
export declare class ImbaUniRequest {
/**
* `baseURL` 将自动加在 `url` 前面,除非 `url` 是一个绝对 URL。
* 它可以通过设置一个 `baseURL` 便于为实例的方法传递相对 URL
*/
private baseURL;
/**
* 超时时间,单位毫秒
* 默认 30s = 1000 * 30
*/
private timeout;
/**
* 设置请求的 header,header 中不能设置 Referer。
* 平台差异说明:App、H5端会自动带上cookie,且H5端不可手动修改
*/
private header;
private headers;
/**
* 记录请求过的地址
* { [url]: Promise }
*/
private recordUrl;
/**
* 请求拦截和响应拦截执行器
*/
interceptors: InterceptorsImpl_DTYPE;
/**
* 缓存&SWR 是否开启
* 默认 true
*/
private cacheBool;
/**
* 缓存&SWR 缓存单位 mm | ss
* 默认 mm
*/
private cacheUnit;
/**
* 是否重复请求合并
* 默认 true
*/
private repeatMergeBool;
/**
* 是否请求错误后重试
* 默认 true
*/
private retryBool;
/**
* 请求重试错误次数
* 默认 1
*/
private retryCount;
/**
* 重试内时间定位 单位秒 在此时间内做错误重试请求
* 默认 3
*/
private retryInterval;
/**
* 请求地址追加次数统计 [{ '地址': [重试的次数,初次重试的时间] }]
*/
private retryUrlCount;
/**
* 分页key
*/
private pageKey;
/**
* 打印API接口地址是否MD5化
*/
private printMD5;
/**
* 是否开启打印请求数据
*/
private printConsole;
constructor(option: options_DTYPE);
setObjectVal(obj: Object): this;
/**
* 默认拦截处理
*/
private defaultInterceptor;
/**
* 格式化功能性配置项
* @param config
* @returns
*/
private dataFactory;
private clone;
/**
* 计算剩余缓存时间
* @param key
* @returns
*/
private comCacheStrify;
/**
* 设置当前页,页面数
* @param cur [当前页,页面数]
* @returns
*/
private setPageSize;
/**
* @param api 接口地址 | [接口地址, 请求类型] | [接口地址, 请求类型, 缓存时间(默认分单位)]
* @param inject 注入配置
* @param axiosOptions axios配置
* @returns Promise
*/
request<T = any>(api: string | [string, METHOD_DTYPE] | [string, METHOD_DTYPE, number], inject?: Inject_DTYPE, uniOptions?: Partial<UniNamespace.RequestOptions>): Promise<T>;
/**
* GET请求
* @param apiUrl 接口地址
* @param inject 注入配置
* @param options axios配置
* @returns Promise
*/
get<T = any>(apiUrl: string, inject?: Inject_DTYPE, options?: RequestConfig_DTYPE): Promise<T>;
/**
* POST请求
* @param apiUrl 接口地址
* @param inject 注入配置
* @param options axios配置
* @returns Promise
*/
post<T = any>(apiUrl: string, inject?: Inject_DTYPE, options?: RequestConfig_DTYPE): Promise<T>;
/**
* PUT请求
* @param apiUrl 接口地址
* @param inject 注入配置
* @param options axios配置
* @returns Promise
*/
put<T = any>(apiUrl: string, inject?: Inject_DTYPE, options?: RequestConfig_DTYPE): Promise<T>;
/**
* DELETE请求
* @param apiUrl 接口地址
* @param inject 注入配置
* @param options axios配置
* @returns Promise
*/
delete<T = any>(apiUrl: string, inject?: Inject_DTYPE, options?: RequestConfig_DTYPE): Promise<T>;
}