网络相关类组件
模块 | 介绍 |
---|---|
efAxiosParams | 提供eftool封装axios请求所需的参数 |
efAxios | 二次封装axios的产物,提供统一请求响应拦截等 |
efClientApi | 提供针对于统一post,get,delete,put等请求封装 |
网络组件使用API
前言
1.efAxiosParams类参数详解
/**
* 是否整体传输加密 与关键字加密isAllEncrypt互斥 二者只能有其一为true
*/
static isAllEncrypt: boolean = false;
/**
* 是否部分关键字传输加密 与整体传输加密互斥 二者只能有其一为true
*/
static isPartEncrypt: boolean = false;
/**
* 关键字加密时的关键字集合
*/
static keyWordsList: Array<string> = new Array<string>();
/**
* 用户自定义token的Key,默认为Authorization
*/
static tokenName: string = 'Authorization';
/**
* 登录成功后的token值
*/
static tokenValue: string = '';
/**
* 服务器 URL
*/
static baseURL: string = '';
/**
* 请求头加密的SM2公钥
*/
static sm2PubKey: string = '';
/**
*加解密接口忽略集合
*/
static ignoreEncryptList: Array<string> = new Array<string>();
/**
* 是否将响应数据转换为OutDTO对象,默认为true,如业务后台返回无法转换则关闭(1.1.9+)
*/
static isConvertDTO: boolean = true;
2.AxiosUtil工具类
- efAxios 全局对象
该变量为抛出的全局二次封装的全局axios对象,默认超时时间为10s
- convertRequestInfo 封装的针对于统一请求的处理
//1.统一给请求头添加nonce防篡改校验因子,业务自行实现,如有需求也可在后续demo中完善
//2.统一给请求头添加timestamp防重放的随机数因子,业务自行实现,如有需求也可在后续demo中完善
//3.设置默认请求类型 application/json
//4.添加统一的isAllEncrypt=true时整体加密,当前版本前端已完成,后端demo暂未完成,预计1.1.9前后可全部完善
//5.添加统一的isPartEncrypt=true时根据关键字加密,当前版本前端已完成,后端demo暂未完成,预计1.1.9前后可全部完善
//6.添加统一的请求头签名sign字段,当前版本前端已完成,后端demo暂未完成,预计1.1.9前后可全部完善
- convertResponseInfo 封装的针对于统一响应的处理 【统一返回OutDTO】
//新增efAxiosParams.isConvertDTO来根据业务需要自行决定是否开启封装返回数据为OutDTO
//目前只对返回数据格式做了统一的OutDTO转换
//要求后端返回的数据格式包含OutDTO中的success,msg
//dataRow和dataTable业务数据自行选择,非必填
3.EfClientApi工具类
该工具类提供统一简化各种请求方式,入参为json格式内部进行转换为所需对象
- post请求 async/await 方式
//参数说明
async post<F, E>(url: string, query: Record<string, Object>, headers?: Record<string, Object>): Promise<E>
//url 为请求方法的url 全路径应该为 efAxiosParams.baseURL+url 组合而成
//F 为请求入参对象,具体参照示例中的写法
//E 为响应结果对象,格式为OutDTO<T> T为业务自定义对象
//headers提供给如果当前请求需要额外设置headers请求头参数时使用,保持json格式
//query 为JSON