简单的二次封装axios

做项目的时候,api接口统一管理,一边学习一边记录

一、安装axios

npm install axios

二、 在 src 目录下新建 api 文件夹 

api文件夹下存放项目接口文件,以便统一管理

在 api 文件夹下 新建  index.js

三、引入并封装

index.js

1. 引入 axios

import axios from 'axios'

2. 环境的切换

// 环境的切换
if (process.env.NODE_ENV === 'development') {axios.defaults.baseURL = ''
} else if (process.env.NODE_ENV === 'debug') {axios.defaults.baseURL = ''
} else if (process.env.NODE_ENV === 'production') {axios.defaults.baseURL = ''
}

3. 设置请求超时、POST 请求头

// 设置请求超时
axios.defaults.timeout = 10000
// 设置 POST 请求头
axios.defaults.headers.post['Content-Type'] = 'application/json'

4. 添加请求拦截器

axios.interceptors.request.use(function (config) {// 在发送请求之前做些什么config.headers.Authorization = window.sessionStorage.getItem('token')// 在最后必须 return configreturn config
}, function (error) {// 对请求错误做些什么return Promise.reject(error)
})

5. 添加响应拦截器

axios.interceptors.response.use(function (response) {// 对响应数据做点什么return response
}, function (error) {// 对响应错误做点什么return Promise.reject(error)
})

6. 添加通用方法

export const POST = (url, params, config = {}) => {return axios.post(url, params, config).then(res => res.data)
}
export const GET = (url, params) => {return axios.get(url, { params: params }).then(res => res.data)
}
export const ALL = (promiseArr) => {return axios.all(promiseArr)
}

四、封装接口

1. 在 api 文件夹下 新建 list.js (按自己需求新建文件)

import * as API from './'
export default {// 获取省apiProvincesList: params => {return API.GET('wechat/v1.0/pois/provinces', params)},// 获取市apiCitiesList: params => {const provinceId = paramsreturn API.GET(`wechat/v1.0/pois/cities/${provinceId}`, params)},// 获取县/区apiDistrictsList: params => {const districtId = paramsreturn API.GET(`wechat/v1.0/pois/districts/${districtId}`, params)},// 提交订单apiAdd: params => {const config = {needFormData: true}return API.POST('wechat/v1.0/orders/add', params, config)}
}

2. 在 vue 中使用

import API from 'api/list.js'
// 获取省
getProvincesList () {API.apiProvincesList().then(res => {if (res.resultCode === 0) {this.province_list = res.data// console.log(this.province_list)} else {this.$toast(res.resultInfo)}})
},// 获取市
getCitiesList () {const provinceId = this.provinceIdAPI.apiCitiesList(provinceId).then(res => {if (res.resultCode === 0) {this.city_list = res.data// console.log(this.city_list)} else {this.$toast(res.resultInfo)}})
},
// 获取县/区
getDistrictsList () {const districtId = this.districtIdAPI.apiDistrictsList(districtId).then(res => {if (res.resultCode === 0) {this.county_list = res.data// console.log(this.county_list)} else {this.$toast(res.resultInfo)}})
},
//提交订单
const config = {orderName: this.orderName, // 申请人姓名orderPhone: this.orderPhone, // 申请人手机...
}
// console.log(JSON.stringify(data))
API.apiAddPackage(config).then(res => {if (res.resultCode === 0) {this.$toast('申请成功!')this.successDialog = true} else {this.$toast(res.resultInfo)}
})

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/59007.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

组态软件MCGS(昆仑通态)初识

MCGS简介 MCGS的全称为Monitor(输入) and Control(输出) Generated System,即监视与控制通用系统,是北京昆仑通态自动化软件科技有限公司开发的一套基于Windows平台用于快速构造和生成上位机监控系统的组态软件系统MCGS包括 – 网…

昆仑万维2022年净利润11.5亿元,自研天工大模型4月17日启动邀测

4月11日消息,昆仑万维发布2022年年度业绩报告。2022年,昆仑万维营业收入47.4亿元,归属于上市公司股东的净利润11.5亿元,归属于上市公司股东的经营性净利润(不含投资)6.4亿,同比增长112%。 本报告…

稳踞三大价值高地!昆仑万维角逐AIGC“新大陆”

历史总是被前瞻者和实干家推动着加速前行。 15世纪,多艘探险船队从欧洲出发向着东方而去,开启群雄角逐的探索时代。他们在航行中不断发现新大陆,兴起无数的造富神话,也加速了全球贸易、信息等方面的交流,翻开一个全新…

昆仑万维重磅发布AIGC全系列算法与模型,领跑未来

2022年12月15日,昆仑万维在北京举行AIGC技术发布会,会上昆仑万维CEO方汉正式发布了「昆仑天工」AIGC全系列算法与模型,并宣布模型开源。「昆仑天工」旗下模型包括天工巧绘SkyPaint、天工乐府SkyMusic、天工妙笔SkyText、天工智码SkyCode&…

小爱智能音箱红外控制继电器

小爱智能音箱红外控制继电器 一、实物图 二、物料准备 1.小爱智能音箱万能遥控版(活动价¥99) 2.红外遥控继电器。 关于红外遥控继电器以下提供二种解决方案: 2.1简单省事版 买现成的红外遥控插排¥20左右&#xff…

面向开发者的 ChatGPT 提示工程

LLM 正在逐步改变人们的生活,而对于开发者,如何基于 LLM 提供的 API 接口快速、便捷地开发一些具备更强能力、集成 LLM 的应用,来便捷地实现一些更新颖、更实用的能力,是一个急需学习的重要能力。由巨佬吴恩达老师与 OpenAI 合作推…

Repository “http://xxx@git.xxx.net/xxx/xxx.git”not found 解决

本人在github上进行协同开发拉取项目,需要切换用户拉取项目,一直拉取不下来,报错说项目找不到。 出现的原因是远程:找不到存储库 http://xxxgit.xxx.net/xxx/xxx.git 。 其根本的原因是切换用户后git一直记忆的是之前的用户信息…

手把手教你做微信公众号

手把手教你做微信公众号 微信公众号可以通过注册的方式来建立。 1.进入微信公众平台 首先,在浏览器中搜索微信公众号,网页第一个就是,如下图所示,我们点进去。 2.注册微信平台账号 进入官网之后,如下图所示&#…

微信公众号开发__微信网页授权并获取用户基本信息(是否关注公众号、头像、昵称等)

本人最近要做微信公众号网页开发的项目,其中有个需求是判断用户是否关注公众号,由于之前没有接触过微信授权的东西,所以提前开始做调研。在度娘上看了好多博客、百度知道、百度经验、知乎问答等,还仔细阅读了微信公众平台开发文档…

微信公众号使用:给微信公众号自定义菜单中设置查看历史记录的功能

在微信公众号维护过程中,尤其是从微信公众号刚开始运行的时期,在设置自定义菜单的时候,为了让用户能看到和了解发布的微信文章,就涉及到了在自定义菜单中设置查看历史记录的功能。设置这个查看历史记录的功能主要是为了方便用户查看,让用户更好的了解,那么接下来就来讲具…

如何设置微信公众号的测试号的菜单

由于工作需要需要设置公众号的测试号的菜单,没想到查了半天,尽然发现这个菜单栏要写代码实现,小编表示想狗带。在开发小哥哥的帮助下,总算是实现了这个问题。 如何找到公众号的测试号 1、登录微信公众号后台。左边栏最下面找到开…

微信公众号开发(消息推送)

文章目录 微信公众号开发运行效果微信公众号简介注册微信公众号注册测试公众号搭建微信本地调试环境微信公众号接入(校验签名)给指定用户推送消息网页授权获取用户openid给指定用户发送模板信息 微信公众号开发 代码地址 运行效果 微信公众号简介 微信公众号分为服务号、订阅…

【监听微信公众号消息】

监听微信公众号消息 效果图如下:环境要求 效果图如下: 环境要求 需要windows服务器,登陆上微信。获取到的消息是xml格式,需要解析内容获取自己想要的公众号推送的消息。 详情:https://learnku.com/articles/73022

手把手教你如何获取微信公众号用户的个人信息(包括OpenId)

最近,对微信公众号有点兴趣,就自己研究了研究里面的一些内容,发现还挺有意思的,而且通过微信公众号可以调用一些比较有意思的接口,就比如百度开发服务平台 点击进入 里面的很有接口,就比较常见的翻译,语音识别,地理位置等等,都挺好的。好了,不多说,进入正题好了。 我…

关于微信公众号模板消息的调整,你怎么看?

早上起来,有客户反馈,推送的消息出现了问题。 经过测试,确实收到的消息和以前不一样了。 这就比较奇怪了,最近也没有做什么调整,为啥忽然就出问题了呢。 先自己检测测试了一下,发现发送的内容中的头尾部…

免费“白嫖” GPT-4 方法 +1,飙升 GitHub 热榜第二!开发者锐评:跟“偷”有什么区别?

前不久,可“白嫖” GPT-4 的 Forefront Chat 吸引了众多关注,导致该网站一度崩溃,也令不少人发出疑问:“GPT-4 这么贵,为什么它能免费让我们用?” 关于这个问题,Forefront Chat 方面并未做出相…

sipiiiii: 面向小微企业和个人开发者的简单易用应用托管平台

在当前数字化时代,越来越多的企业和个人都需要依赖云端服务来托管他们的应用程序。然而,很多传统的云服务商过于复杂或昂贵,这让小微企业和个人开发者难以忍受。为了满足这些用户的需求,我们推出了 sipiiiii,一个简单易…

云数据库技术沙龙|多云多源下的数据复制技术解读-NineData

摘要:随着数据智能时代的到来,多云多源架构下的数据管理是企业必备的基础设施,我们认为数据存取、数据集成与分发、数据安全与数据质量是基础,也是走向多云多源架构的起点。本议题介绍云原生的多云多源数据管理NineData&#xff0…

论文阅读《Representation learning with contrastive predictive coding 》(CPC)对比预测编码

论文地址:Representation Learning with Contrastive Predictive Coding 目录 一、Background(背景) 二、Motivation and Intuitions(动机) 三、Constrastive Predictive Coding(对比预测编码&#xff…

论文阅读和分析: “How Attentive are Graph Attention Networks?”

下面所有博客是个人对EEG脑电的探索,项目代码是早期版本不完整,需要完整项目代码和资料请私聊。 数据集 1、脑电项目探索和实现(EEG) (上):研究数据集选取和介绍SEED 相关论文阅读分析: 1、EEG-SEED数据集作者的—基线论文阅读和…