axios的封装和api接口封装

一、axios封装

axios中文文档
https://www.axios-http.cn/
axios的安装

//npm
npm install axios
//yarn
yarn add axios

在src目录下创建utils文件夹创建index.js

//index.js
//导入axios
import axios from 'axios'

//创建axios实例
const axios = axios.create({
	//统一的url前缀
	baseURL:"http://localhost:8080",
	//超时时间
	timeout:5000,
	//自定义请求头
	headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},
})

//request请求拦截
axios.interceptors.request.use(config => {
	//判断token是否存在,存在则向请求头添加token信息
	if(sessionStorage.getItem("token")){
		config.headers.Authorization = sessionStorage.getItem("token") 
	}
	return config
}),err => {
	//对请求错误进行处理
	return Promise.reject(err)
}

//response 响应拦截
axios..interceptors.response.use(response => {
const date = res.date
	//成功获取信息
	if(date.code == 200){
		return xxx
	}
	return response
}),err => {
	//对响应错误进行处理
	return Promise.reject(err)
}


export default axios

二、api接口封装

第一步

//index.js
//npm i qs 安装qs
import QS from 'qs'

//get接口封装
export funtion get(url,params) {
	return new Promise((resolve,reject) => {
		axios.get(url,params).then(res => {
			resolve(res)
		}).catch(err => {
			reject(err)
		})
	})
}

//post接口封装
export funtion post(url,date) {
	return new Promise((resolve,reject) => {
		axios.post(url,date).then(res => {
			resolve(res)
		}).catch(err => {
			reject(err)
		})
	}) 
}

第二步、在src目录下创建api文件夹

//login.js
import { post } from '../utils/index'

//登录接口
export const Login = date => post('/api/login',date)

封装好的接口使用

//Login.vue
//导入封装好的接口
import { Login } from './api/login'

// const login = ()=>{
//   Login(LoginFrom).then(res=>{
//   console.log(res)
// }).catch(err=>{
//   console.log(err)
// })
// }

const Login = async()=> {
	let res = await Login(date)
	console.log(res)
} 

完整的index.js

//index.js
//导入axios
import axios from 'axios'

//创建axios实例
const axios = axios.create({
	//统一的url前缀
	baseURL:"http://localhost:8080",
	//超时时间
	timeout:5000,
	//自定义请求头
	headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},
})

//request请求拦截
axios.interceptors.request.use(config => {
	//判断token是否存在,存在则向请求头添加token信息
	if(sessionStorage.getItem("token")){
		config.headers.Authorization = sessionStorage.getItem("token") 
	}
	return config
}),err => {
	//对请求错误进行处理
	return Promise.reject(err)
}

//response 响应拦截
axios..interceptors.response.use(response => {
const date = res.date
	//成功获取信息
	if(date.code == 200){
		return xxx
	}
	return response
}),err => {
	//对响应错误进行处理
	return Promise.reject(err)
}


//get接口封装
export funtion get(url,params) {
	return new Promise((resolve,reject) => {
		axios.get(url,params).then(res => {
			resolve(res)
		}).catch(err => {
			reject(err)
		})
	})
}

//post接口封装
export funtion post(url,date) {
	return new Promise((resolve,reject) => {
		axios.post(url,date).then(res => {
			resolve(res)
		}).catch(err => {
			reject(err)
		})
	}) 
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值