umi request设定middleware

4 篇文章 0 订阅

主思路

在app.tsx里设定,middlewares, requestInterceptors, responseInterceptors, errorHandler

详情

很简单,在app.tsx里设定。middlewares 会比较复杂,但可以同时处理request和response,比如写入特殊的日志。

errorHandler 就是处理错误的,可以在这里判断业务错误,配合status code和response。

requestInterceptors 是request 拦截器,在request发出前做一些处理,比如加上auth key。

responseInterceptors 是response拦截器,在response交给业务真正处理前做一些处理,比如变换格式,或者补充内容。

import type { RequestConfig } from 'umi';
import { getAuthToken } from '@/helpers/utils';

const commonProcRequest = (url: string, options: RequestOptionsInit) => {
  if (options.headers) {
    const authToken = getAuthToken();
    options.headers['X-AUTH-TOKEN'] = authToken.token;
  }
  return {
    url: url,
    options: {
      ...options,
    },
  };
};


// request setting
export const request: RequestConfig = {
  timeout: 10000,
  errorConfig: {},
  middlewares: [
    async function commonMiddleware(ctx, next) {
      // process resp
      console.log('A before');
      await next();
      console.log('A after');
    },
  ],
  requestInterceptors: [commonProcRequest],
  responseInterceptors: [],
};

参考

官方 @umijs/plugin-request

网络请求 - Ant Design Pro

useRequest: useRequest- 蚂蚁中台标准请求 Hooks - 知乎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值