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的用法,可以完全按照这样来写

原文地址:https://www.cnblogs.com/piaobodewu/p/10262397.html

时间: 2024-08-29 19:18:15

react封装基于axios的API请求的相关文章

vue项目实践-添加axios封装api请求

安装 axios npm install axios --save 创建实例 (utils/fetch.js) axios 默认提交格式为:application/json 可使用 qs 模块(需要安装)转换后提交格式为 application/x-www-form-urlencoded 通过设置 transformRequest 属性 data => qs.stringify(data) 可以正常表单形式提交 import axios from 'axios' const instance =

如何在React中处理REST API请求

REST API通常用于Web开发中.它们是Web应用程序用来彼此"交谈"的编程接口.它们用于访问功能部件和数据." REST"(代表性状态转移)是定义API属性的概念.本文将重点介绍如何使用基于Web的API从数据库中检索数据. Axios是一个npm软件包,允许应用程序将HTTP请求发送到Web API.要在您的React应用程序中使用Axios,请使用以下命令: npm install axios 要么 yarn add axios 在创建react组件之前,

基于axios的vue插件,让http请求更简单

ajax-plus 基于axios 的 Vue 插件 如何使用 npm 模块引入 首先通过 npm 安装 ```npm install --save ajax-plus or yarn add ajax-plus -S <p>然后在入口文件引入并配置:</p> <p>对标axios的配置,详见<a href="https://www.npmjs.com/package/axios" rel="nofollow noreferrer&q

小程序api请求层封装(Loading全局配置)

前言 小程序开发,没有vue中的axios那么好使,请求层的封装需要自己来搞. 当然请求层的配置少不了loading,这里索性也就将loading做一个配置,避免以后重复造轮子 请求封装 小程序中有封装好的请求方法:wx.request(url,method,header,success,fail,complete);方法类似于原生的ajax, 这里我们大的方面分两种,一种普通请求,一种是文件上传 普通请求又分为get请求,post请求,post请求又分为JSON格式和BODY格式因此 我们需要

基于Hiredis异步API的聊天系统实现

基于Hiredis异步API的聊天系统实现 上一篇文章http://blog.csdn.net/qq_34788352/article/details/51313027使用Hiredis的同步API实现了发送消息的客户端,当我使用同步API实现订阅频道客户端时,一旦订阅频道,就会出现无法操作的情况,这是就是同步和异步的问题.使用同步API,订阅频道后,客户端会进入阻塞状态,等待订阅频道发布的消息,不能实现既订阅频道,又能发布消息的功能.为了实现一个客户端既能订阅频道,又能发布消息的功能,就需要使

前端基于react,后端基于.net core2.0的开发之路(1) 介绍

文章提纲目录 1.前端基于react,后端基于.net core2.0的开发之路(1) 介绍 2.前端基于react,后端基于.net core2.0的开发之路(2) 开发环境的配置,注意事项,后端数据初始化 3.前端基于react,后端基于.net core2.0的开发之路(3) 各个技术栈配置和说明 4.前端基于react,后端基于.net core2.0的开发之路(4) 前端路由,模型,服务的说明 5.前端基于react,后端基于.net core2.0的开发之路(5) 配置node层,s

angular 中使用 axios 发起 http 请求

angular 中使用 axios /** * 在angular 中引入第三方 http 模块的使用, 以 axios 为例 * 有两种使用方法:(本文使用Promise简单封装) * 一. 直接在要使用请求的组件中 import axios from 'axios', 调用: axios.get/ axios.post ... * 二. 封装成服务: *          1. 引入 axios: import axios from 'axios' *          2. 用 promis

基于okhttp的异步请求

抽空封装了一下基于okHttp的网络请求,刚刚封装好get,post, download,upload请求,不需要创建线程,支持Json自动转换 . Get和Post(文件上传也属于Post)主要分俩个步骤: 1.通过HttpRequestBuilder来创建请求实体对象. 2.通过HttpUtil的sendRequest方法来发送请求,并且使用ResultCallBack来接受返回内容,这个步骤中成功时,自动将json转换为实体,若失败会执行ResultCallBack的onError 方法,

atitit.基于http json api 接口设计 最佳实践 总结o7

atitit.基于http  json  api 接口设计 最佳实践 总结o7 1. 需求:::serverand android 端接口通讯 2 2. 接口开发的要点 2 2.1. 普通參数 meth,param, 2 2.2. 全部的參数定义 2 2.3. key,dynami key)韩式 static key? 2 2.4. 防篡改 sign 2 2.5. Encry加密 3 2.6. zip压缩:: 3 2.7. 首先压缩韩式加密??? 3 3. 选型大全:rim ,ws, http