仓库已经停止维护,已经重新实现,可以使用 booze。
因为这个项目已经比较久远,当初的实现也存在很多问题,所以重启新项目。
dequester
是跨平台的上层请求框架,支持 Node
、浏览器
、小程序
,让开发者更侧重请求在业务逻辑上的表述能力。
npm i dequester -S
安装对应的适配器依赖(不需要全部安装,如底层想使用 axios
驱动,只需要安装 axios
)。
npm i axios -s
npm i flyio -s
npm i jquery -s
import { Post, Prefix, BodyType, useAdapter } from 'dequester';
import axiosAdapter from 'dequester/adapter/axios';
useAdapter(axiosAdapter); // 注册一个适配器 全局只需注册一次
@Prefix('https://domain.com')
class Request {
@Post('/path')
@BodyType('FormData')
async getUserInfo(id) {
// 请求参数
return {
user_id: id,
};
}
}
const request = new Request();
// do request
const info = await request.getUserInfo(996);
dequester
只是一个收集请求信息的工具,处理请求依然以来第三方框架。
目前 dequester
只提供了 最简单的 axios
适配器。
通过这套机制,可以让 dequester
在任何支持 装饰器
特性的环境中工作。
import { useAdapter } from 'dequester';
import axiosAdapter from 'dequester/adapter/axios';
useAdapter(axiosAdapter); // 注册一个适配器 全局只需注册一次
适配器可以自己编写,其本身只是个函数。
import { useAdapter } from 'dequester';
const adapter = async (options) => {
const res = await request(options);
return res;
};
useAdapter(adapter);
函数的参数就是被 requester
收集处理后的请求信息。