axios-factory
TypeScript icon, indicating that this package has built-in type declarations

0.0.11 • Public • Published

axios-factory

一个基于 axios 的小工具。经过简单的配置就可以在 Node 项目中使用已有的 HTTP 服务。

对 axios 进行了简单的封装。

快速开始

安装

npm i axios-factory

一个小例子

import AxiosFactory from "axios-factory";

const config = {
    appConfig: {
        name: "测试app",
        auth: {
            uri: "/login",
            data: { "name": "test", "password": "123456" },
            tokenKeys: [], // 在响应头中需要提取的 token 键
        }
    },
    axiosConfig: {
        baseURL: "http://www.test.com"
    },
    cache: {} // 当前未使用
};

const testApp = new AxiosFactory(
    config.appConfig,
    config.axiosConfig,
    config.cache
);

// 初始化应用(进行登录认证)
testApp.initialize().then(async () => {
    try {
        const response = await testApp.axiosClient({ url: "/news" });
        console.log(response.data);
    } catch (error) {
        console.error("请求失败", error);
    }
}).catch(error => {
    console.error("初始化失败", error);
});

配置说明

AxiosFactoryConfig

  • name: 应用名称,用于日志输出。
  • auth: 认证配置,用于登录请求。
    • uri: 登录接口的 URI。
    • data: 登录请求的数据(如用户名和密码)。
    • tokenKeys: 在响应头中需要提取的 token 键。
  • headers: 可选的默认请求头配置。

AxiosRequestConfig

  • baseURL: 基础 URL,所有请求都会基于此 URL。
  • withCredentials: 是否允许跨域请求携带凭证(默认 true)。
  • timeout: 请求超时时间(默认 10000 毫秒)。

方法说明

initialize()

初始化方法,通过调用登录方法进行认证。

login()

登录方法,发送登录请求并处理响应。

createAxiosClient(axiosConfig: AxiosRequestConfig): AxiosInstance

创建 Axios 实例并设置拦截器。

setupInterceptors(api: AxiosInstance)

设置请求和响应拦截器。

错误处理

在登录失败或请求失败时,会抛出自定义错误 CustomError,并在控制台输出详细的错误信息。

贡献

欢迎提交 issue 和 pull request 来贡献代码。

许可证

MIT License

Package Sidebar

Install

npm i axios-factory

Weekly Downloads

5

Version

0.0.11

License

MIT

Unpacked Size

12.9 kB

Total Files

7

Last publish

Collaborators

  • xiaoyue9527