@zuiwoxing/posisi
Version:
一款基于typescript 前端控制组件,包括(IOC,AOP,Feign,Logger,Util等)
78 lines (77 loc) • 2.2 kB
TypeScript
import { AxiosInstance, AxiosRequestConfig } from 'axios';
import { ReqInfo } from "../model/Meta";
import { Response } from "../model/Response";
/**
* 是否匹配排除的URL
* @param url
* @returns {boolean}
*/
export declare function isMatchExclude(url: string): boolean;
/**
* @desc 所有后台API配置
* @author liudejian
* @date 2020-07-06 16:02:30
*/
export declare class HttpRequest {
static AXIOS_INSTANCE: AxiosInstance;
static INSTANCE_ID: string;
constructor(baseUrl: string);
/**
* 【请求】全局拦截器
* @param currentInstance
* @private
*/
private static initGlobalRequestInterceptor;
/**
* 【响应】全局应拦截器
* @param currentInstance
* @private
*/
private static initGlobalResponseInterceptor;
/**
* 设置用户自定义axios实例
* @param axiosIns
*/
static setAxiosInstance(axiosIns: AxiosInstance): void;
/**
* 获取axios实例
*/
static getAxiosInstance(): AxiosInstance;
/**
* 获取模板值
* @param template 模板 {username}/{age}
* @param data {username:'good',age:100}
* @return good/100
* @example this.$templateEngine(template,data);
*/
static templateEngine(template: string, json: any): string;
/**
* 完善对象实例ID
* @param response 响应对象
* @param instanceId 对象实例
*/
static wrapInstanceId(response: Response<any>, instanceId: string): Response<any>;
/**
* 后台网络请求
* @param api 请求API
*example:
* {
* method: 'POST',
* path : '/api/xx/xxx'
* }
* @param bodyData body体请求
* @param paramData 参数请求
* @param config 请求config
* @param finishCallback 请求回调不管成功与否都会调用
* @returns {Promise<unknown>}
*/
static request(reqInfo: ReqInfo, config: AxiosRequestConfig, finishCallback: any): Promise<any>;
/**
* http 状态异常转换
* @param error
* @param status
* @param errorMsg
* @returns {*}
*/
static httStatusConvert(error: any, status: number, errorMsg: string): any;
}