简易的支持自动域名替换、接口别名的请求模块
-
如果希望使用别名、自动域名替换、修改请求成功状态码、失败自动提示功能,需要在业务模块调用前使用模块
config方法对模块进行设置。config(config: ConfigOption): void;
config对象支持配置参数:successCode请求成功时的状态码hosts域名配置apisapi 别名notifyMod提示浮层
import { config } from "@x-drive/request"; config({ // 将请求成功状态码修改为 233 "successCode": "233" // 指定了 product 业务的地址 , "hosts": { "product": "http://api.test.dev" } // 设置了 /home 业务的别名 , "apis": { "/home": "/api/hahaha/home" } });
-
模块目前支持请求前及请求后钩子,该功能只支持实例级别的设置
import Request from "@x-drive/request"; // 全局请求实例设置 Request.setting({ "hooks": { onRequest(conf) { console.log(conf); } , onResponse(raw) { console.log(raw); return raw; } } });
require或import方式引用import Request from "@x-drive/request";
- 页面直接用
script标签引用注意这种方式如果直接在浏览器中使用时,模块名称会被重命名为<script src="https://your_static_files/index.umd.js"></script>
xRequest。
-
get发起一个 get 请求get(url: string, param?: ReqParams, config?: ReqConf)
url请求url或别名param请求参数config请求配置
-
post发起一个 post 请求post(url: string, param?: ReqParams, data?: ReqData, config?: ReqConf)
url请求url或别名param请求参数data请求数据config请求配置
-
run执行任意类型请求run<T>(type: string, url: string, params: ReqParams = {}, data: ReqData = {}, config: ReqConf = {}): Promise<T>
type请求类型url请求url或别名param请求参数data请求数据config请求配置
-
resolveUri解析生成正确的数据请求地址resolveUri(uri: string, params: object)
uri接口别名或具体的请求地址params请求参数对象
-
cancel放弃当前正在发起的所有请求cancel()
-
randomStr生成一个 16 进制的随机数randomStr(): string
模块默认在全局会生成一个通用的请求实例,方便对所有的请求进行管理。同时也以 R 导出了模块,支持使用者单独实例化另外的请求实例用于其他用途。
目前只支持实例 Hooks,也即是说只支持通过 setting 函数设置的钩子
onRequest请求前钩子/**请求前钩子 */ onRequest?: (config?: ReqConf, params?: ReqParams, data?: ReqData, url?:string) => void | boolean;
onResponse请求后钩子/**请求后钩子 */ onResponse?: (raw?: string, config?: ReqConf, params?: ReqParams, data?: ReqData, req?: XMLHttpRequest) => any;
onResponseError请求失败钩子/**请求失败钩子 */ onResponseError?: (re?: any, type?: ReqErrorTypes, config?: ReqConf, req?: XMLHttpRequest) => void | boolean;