requestor
快速开始
安装
npm install @qigy/requestor--save
yarn install @qigy/requestor --save
pnpm install @qigy/requestor --save
导入
/* 方式一 */
import Http from '@qigy/requestor';
/* 方式二 */
import {...} from '@qigy/requestor';
注册
axios 的注册方式,大家应该都知道的。为了进一步减少代码,加强语义化,。重新设计了注册方式。
获取 Register
/* 方式一 */
import Http from '@qigy/requestor';
Http.Register;
/* 方式二 */
import { Register } from '@qigy/requestor';
使用
复合方式
import { Register } from '@qigy/requestor';
const options = {
baseUrl: '/bs/protal',
timeOut: 0,
headers: {
get: {},
post: {}
},
defaultFilename: 'demo.md',
requestInterceptor() {},
requestInterceptorCatch() {},
responseInterceptor() {},
responseInterceptorCatch() {},
};
Register(options);
独立方式
import { Register } from '@qigy/requestor';
Register.baseUrl('/bs/protal');
Register.timeOut(100);
Register.headers({});
Register.defaultFilename('demo.md');
Register.requestInterceptor(
() => {},
() => {}
);
Register.responseInterceptor(
() => {},
() => {}
);
备注
其中请求拦截器与响应拦截器只能注册一次。其余属性均可多次注册进行覆盖。
API
Get
说明
get 请求封装。
获取
/* 方式一 */
import Http from '@qigy/requestor';
Http.Get;
/* 方式二 */
import { Get } from '@qigy/requestor';
使用
import { Get } from '@qigy/requestor';
Get('/get/user/info', { id: '9527' })
.then((res) => {})
.catch((err) => {});
Post
说明
post 请求封装。
获取
/* 方式一 */
import Http from '@qigy/requestor';
Http.Post;
/* 方式二 */
import { Post } from '@qigy/requestor';
使用
import { Post } from '@qigy/requestor';
Post('/set/user/info', { id: '9527' })
.then((res) => {})
.catch((err) => {});
Put
说明
put 请求封装。
获取
/* 方式一 */
import Http from '@qigy/requestor';
Http.Put;
/* 方式二 */
import { Put } from '@qigy/requestor';
使用
import { Put } from '@qigy/requestor';
Put('/put/user/info', { id: '9527' })
.then((res) => {})
.catch((err) => {});
Patch
说明
patch 请求封装。
获取
/* 方式一 */
import Http from '@qigy/requestor';
Http.Patch;
/* 方式二 */
import { Patch } from '@qigy/requestor';
使用
import { Patch } from '@qigy/requestor';
Patch('/patch/user/info', { id: '9527' })
.then((res) => {})
.catch((err) => {});
Delete
说明
delete 请求封装。
获取
/* 方式一 */
import Http from '@qigy/requestor';
Http.Delete;
/* 方式二 */
import { Delete } from '@qigy/requestor';
使用
import { Delete } from '@qigy/requestor';
Delete('/delete/user/info', { id: '9527' })
.then((res) => {})
.catch((err) => {});
Download
说明
下载功能功能封装。
获取
/* 方式一 */
import Http from '@qigy/requestor';
Http.Download;
/* 方式二 */
import { Download } from '@qigy/requestor';
使用
import { Download } from '@qigy/requestor';
Download('/download/user/info', { method: 'POST' })
.then((res) => {})
.catch((err) => {});
备注
自定义响应拦截器将会失效。
Request
说明
请求通用实例。
获取
/* 方式一 */
import Http from '@qigy/requestor';
Http.Request;
/* 方式二 */
import { Request } from '@qigy/requestor';
使用
import { Request } from '@qigy/requestor';
Request('/set/user/info', { method: 'POST', data:{ id:‘9527’ } })
.then((res) => {})
.catch((err) => {});
自定义拦截器
定义
interface RequestInterceptor{
(res:any): any
}
interface ResponseInterceptor{
(err:any): any
}
interface Interceptors {
requestInterceptor: RequestInterceptor
responseInterceptor: ResponseInterceptor
}
interface Config {
interceptors: Interceptors
....
}
使用
import { Get } from '@qigy/requestor';
const interceptors = {
requestInterceptor(res) {
return res;
},
responseInterceptor(err) {
return err;
}
};
Get('/get/user/info', {}, { interceptors })
.then((res) => {})
.catch((err) => {});