1.0.1 • Published 10 months ago

@tanzerfe/http v1.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
10 months ago

开箱即用的请求库 @tanzerfe/http


一个用于处理 HTTP 请求和协议的库,提供了丰富的配置选项和拦截器机制,方便开发者进行网络请求管理。

模块导出

$Config

  • 类型: Config
  • 描述: 请求库的配置类,包含了请求成功的 code 值、token 获取方法、toast 实例及其默认主题、请求错误处理函数和响应处理函数。
  • 详细信息: 请参见 请求库配置

$http

  • 类型: AxiosInstance
  • 描述: 带有拦截器的 Axios 实例,用于发送 HTTP 请求。
  • 使用说明: 请参见 使用示例

$httpNano

  • 类型: AxiosInstance
  • 描述: 不带拦截器的 Axios 实例,用于发送直连 HTTP 请求。

$protocol

  • 类型: any
  • 描述: 协议相关的工具或配置。
  • 使用说明: 该导出的具体使用方法根据项目中的 protocol 实现而定。

请求库配置

import {$Config} from "./index";

// $Config.getCustomHeaders = { zh_id: '' };
$Config.getToken = () => {
  return auth.userInfo?.token;
};
$Config.$toastLight = useToastCtx({theme: 'light'});
$Config.$toastDark = useToastCtx({theme: 'dark'});
// ...

Config类用于配置请求库的各种参数和处理函数。

属性

success_codes
  • 类型: (string | number)[]
  • 默认值: ['success', '200', '201', '202', 200]
  • 描述: 定义正常响应的 code 值。
getCustomHeaders
  • 类型: Record<string, any> | (() => Record<string, any>)
  • 默认值: undefined
  • 描述: 获取 header 的对象或函数。
  • 版本:v1.0.1+
getToken
  • 类型: () => string | undefined
  • 默认值: () => void 0
  • 描述: 获取 token 的函数。
defaultToastTheme
  • 类型: 'light' | 'dark'
  • 默认值: 'dark'
  • 描述: 默认的 toast 主题。
$toastLight
  • 类型: IToast
  • 描述: light 主题的 toast 实例。
$toastDark
  • 类型: IToast
  • 描述: dark 主题的 toast 实例。

方法

requestErrorHandler
  • 类型: (error: any, reqData: any) => void
  • 描述: 请求错误处理函数。
responseHandler
  • 类型: (resData: any, reqData: any) => void
  • 描述: 响应处理函数。
_cfg
  • 类型 Object
  • 描述:参数附加配置
    • noAuth 为true则不传token
    • showTip 错误提示
    • showOkTip 成功提示
    • okTipContent 成功提示文案
    • theme toast皮肤 'dark'、'light'

使用示例

import { $http, $Config } from '@tanzerfe/http';

(function getData() {
  const url = 'https://httpbin.org/post';
  const params = { t1: 'test' };

  $http.post(url, {
    data: {
      ...params,
      // 单个请求配置成功提示、错误提示、皮肤
      _cfg: {
        showTip: true,
        showOkTip: true,
        theme: 'dark', // 'dark' or 'light'
      },
    },
  });

  // $http.get(url, {
  //   data: {
  //     _cfg: {...},
  //   },
  // });
})();