restful-request 是一个基于 Axios 的 HTTP 库,可以用在浏览器和 node.js 中
特性
- 支持axios的所有特性
- 统一request写法,让restful主体请求与底层无关,换句话说业务层不改变情况下Axios可还成其他。
- loading 状态计算,提供统一的showLoading 和 hideLoading 监听函数
- 提供定义HTTP Error,SystemError, BusinessError,BusinessSucess Cancel Request and timeout 函数
一、基本request使用
1. 全局定义 createAPI
// utils/createAPI.js; ;
目的: 建立应用请求函数唯一入口, 方便统一处理共同业务及配置, fetchConfig为axios的config 非必须
2. 调用createAPI 定义接口方法
createAPI(httpMethod, url, fetchConfig)
返回requestFunc
// services/api.js; const userGet = ;const userPut = ;const userPost = ;const userDelete = ;const classGet = ;const classPut = ;
3. 调用接口
普通url格式
requestFunc(params)
返回promise对象
get, delete请求
; // get request /user?id=23 // delete request /user?id=23
post, put
; // post request /user, params {id: '23'} // put request /user, params {id: '23'}
含模板url格式
; // get request /class/23/use?id=2 // put request /class/23/use, params {id: '23'}
二、loading
;// 获取当前loading状态loading // 重置loading 计数loading // 显示loading callbakloading console;// 影藏loading callbakloading console; loadingoffLoading // true 关闭showLoading,hideLoading 回调, 默认值为:false
. requestReponse
; requestReponse { // 定义success code } requestReponse { // 定义SystemError code scope } requestReponse { // 定义 ValidationError code scope } requestReponse { // 定义success callback } requestReponse { // 定义httpError callback } requestReponse { // 定义systemError callback } requestReponse { // 定义businessError callback } requestReponse { // 在传递给 then/catch 前,允许修改响应数据 return data; }