wool-hyhttp
weForward数据请求包装,数据请求部分用的axios,因此hyhttp.axios可以用于普通的请求
请求weForward数据时的参数和配置部分基本和axios一致
安装
npm install wool-hyhttp
引入
#配置环境变量,以vue cli3.x为例,在项目根目录创建.env文件 #网关-生产环境域名 VUE_APP_HY_HOST_PRODUCT=https://g1.honinsys.cn,https://z1.honinsys.cn#网关-测试环境域名 VUE_APP_HY_HOST_TEST=//lhoninyun.navboy.com#网关-本机开发环境域名 VUE_APP_HY_HOST_DEV=//lhoninyun.navboy.com
普通数据请求
//有登录的情况下,Authorization使用WF-SHA2,否则Authorization使用WF-Nonehyhttp;//params和config为可选参数 //用法同hyhttp.post,但该方法Authorization强制使用WF-None,适用于不需要access凭证的请求,例如登录hyhttp;
/**示例说明普通数据请求使用hyhttp.post方法(文件上传和文件下载除外,后面会有介绍)url部分说明:train表示微服务名,如果有指定默认微服务名此处可以省略,method后面的listGoods表示微服务的方法名,params表示请求的参数,config请参考axios的参数配置,需要注意的是,config中提供一个weForward请求专用的属性hyconfig{ hyconfig:{ //网关域名 baseURL: '', //自定义头 headers: {}, //网关请求参数,可选 // { // resId:'', // traceId:'', // ver:'', // waitTimeout:0 // } hyReq: null, accessId: '', accessKey: '', }}*/let params=params1:'params1';hyhttp ;
文件上传
//用法 /** * @param * @param * @param * @param * 如需监听上传进度,请配置hyconfig的onUploadProgress属性:function(e){ } * {hyconfig:{onUploadProgress:onUploadProgress}} * */ ;
//示例hyhttp ;})
文件下载
/** * @param * @param * @param * config下的hyconfig此处支持notAutoDownload属性,用于配置是否不自动打开连接Boolean类型 * 默认为false,也就是默认自动打开,特殊情况可能不需要自动打开,例如上传文件后 */ hyhttp
统一登录
初始化应用时需要配置好全局的loginUrl
hyhttp;
/** * 统一登录 * @param * @param * @return */ hyhttp;
【注意】:如果需要自定义登录的参数,可以使用hyhttp.noAccessPost方法, 登录成功后,调用hyhttp.onlogined(data)
//例如:自定义实现登录,返回的数据,必须要包含accessId,accessKey,accessExpire三个属性 hyhttp;
退出登录
初始化应用时需要配置好全局的logoutUrl
hyhttp;
调用退出登录
/** * 统一退出登录 * @return */ hyhttp;
登录后的凭证是有有效期的,为了维持有效性,内部会定时刷新延长有效期, 因此初始化应用的时候需要全局配置refreshAccessUrl
//示例: hyhttp
添加请求异常监听
/** * 添加请求事件监听 * @param * 可选事件: * requireauth--表示需要登录监听事件, * visitforbidden--表示无访问权限监听事件, * beforerequest--表示请求数据前的事件 * @param */ hyhttp; //一般是在初始初始化项目的时候配置好 //监听需要登录事件 hyhttp; //无访问权限监听 hyhttp; //甚至还可以自定义业务层异常事件监听,例如: //后台和前端约定好业务层错误码 const VERIFYMOBILECODE = 100000101; //注册自定义异常码匹配 hyhttp; //添加自定义异常事件监听 hyhttp;
配置基础服务名
//基础服务名也就是默认微服务名 //如果你认为该服务使用的次数最多,便可以配置该项 /** * 添加请求事件监听 * @param */ hyhttp; //这样请求的时候可以省略掉服务名 例如: hyhttp; //每一对使用英文冒号隔开,配置多对时使用英文逗号隔开,如果生产环境的和自己的相同也可以简写,例如 //例如多人协同开发,各自有不同的服务器时,需要用到 VUE_APP_DEV_SERVICENAME=train:train44demodevops
配置全局参数
/** * 如果一个参数,每个请求都需要带上,那么可以放在全局请求参数中 * @param * @param {String,Number,Boolean} value 参数值 */ hyhttp; //这样请求的时候可以省略掉服务名 例如: hyhttp; 另外还有: hyhttp;//获取全局参数 hyhttp;//删除全局参数
配置租户信息
//适用于多租户的场景 /** * @param */ hyhttp;
版本说明:accesskey同时支持hex和base64格式