简易的支持自动域名替换、接口别名的请求模块
-
如果希望使用别名、自动域名替换、修改请求成功状态码、失败自动提示功能,需要在业务模块调用前使用模块
config
方法对模块进行设置。config(config: ConfigOption): void;
config
对象支持配置参数:successCode
请求成功时的状态码hosts
域名配置apis
api 别名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;