zoukankan      html  css  js  c++  java
  • react封装基于axios的API请求

    一、最近做的一个后台管理项目,基于antd-pro做的,需要封装基于axios请求,便于开发,直接上代码。

    import axios from 'axios';
    
    export const MethodType = {
      GET: 'GET',
      POST: 'POST',
      PUT: 'PUT',
      DELETE: 'DELETE',
      PATCH:'PATCH'
    };
    
    /**
     * 模块说明:有api_token的请求
     */
    export const request = (api, method = MethodType.GET, params = {}, config = {}) => {
      const apiToken = '************';
      const data = (method === 'GET') ? 'params' : 'data';
      let headers = {
        'X-Requested-With': 'XMLHttpRequest',
        'Content-Type': 'application/json',
        'Authorization': `Bearer ${apiToken}`,
      };
      if (config.headers) {
        headers = {
          ...headers,
          ...config.headers
        }
      }
      return new Promise((resolve, reject) => {
        axios({
          url: api,
          method,
          [data]: params,
          headers,
        }).then(resolve)
          .catch(error => {
            console.dir(error);
            Message.error(typeof error.response.data === 'string' ? error.response.data : JSON.stringify(error.response.data));
            reject(error);
          });
      });
    };
    

    二、另外项目统一管理api请求,将api请求都放在了api.js目录下

    示例:

    import {MethodType} from "./promise";
    
    const promise = require('./promise');
    
    export const _goodsList = async (page,keyword,catId,onSale)=>{
      return await promise.request('/api/admin/goods/list', MethodType.GET, {
        page,
        keyword,
        catId,
        onSale,
      })
    };
    

    三、使用api方法

    import {
      _goodsList,
    } from '../utils/api';
    
    
      @action.bound
      async handleSearchData(page,keyword,catId,onSale){
        await _goodsList(page,keyword,catId,onSale);
      }
    

    总结:上面的就是项目中api的用法,可以完全按照这样来写

  • 相关阅读:
    DFS的联通性问题
    Stl-unordered_map 无序关联式容器的基本用法(xmind)
    【图论】匈牙利算法——社会人数规模专家
    AcWing 860. 染色法判定二分图
    AcWing 1227. 分巧克力(二分)
    【图论】【最小生成树】prim【AcWing】局域网&&繁忙的都市
    【图论】拓扑排序
    Stl—bitset用法
    vector< vector<int> > 的初始化
    Floyd——人人都是中间商(50%)
  • 原文地址:https://www.cnblogs.com/piaobodewu/p/10262397.html
Copyright © 2011-2022 走看看