axios封装和api接口管理

    科技2025-03-26  14

    axios封装和api接口管理都是为了帮我们简化代码和后期维护的方便。 这次就说说axios的封装和api接口。

    axios的封装

    为了节省时间axios的下载我就不说了,直接开始引入吧,首先创建一个空文件夹network,当然名字可以自己取,叫network只是为了规范一些,在network里面创建一个http.js文件用来封装axios,一个api.js来管理接口,在http.js中引入axios import axios from 'axios' 然后开始设置默认的路径:

    // 当环境切换时改变axios的默认路径 if(process.env.NODE_ENV == 'development'){//这里写测试用的默认路径 axios.defaults.baseURL = 'http://www.ceshi.com/' }else if(process.env.NODE_ENV == 'production'){//这里是上线后的默认路径 axios.defaults.baseURL = 'https://www.shangxian.com/' }

    还有一种“debug”的默认路径,我也不怎么了解,这里就不多说了。 接着,设置请求超时时间:

    axios.defaults.timeout = 5000;

    一般来说都是设置三到五秒,看项目需求,这里我设置的是五秒,之后开始设置请求拦截和响应拦截:

    // 请求拦截和响应拦截 axios.interceptors.request.use( config => { config.headers = {}//在这里设置请求时需要携带的信息 return config } ); axios.interceptors.responce.use( response => {//响应成功时要做的事 }, error => {//失败时要做的事 if (error,response,status){ } } );

    请求拦截和响应拦截都需要看需求,这里就展示不了更多了。在之后就是封装get和post请求方法,当然axios有很多请求方法,这里就举例两种最常见的吧:

    // 使用Promise返回axios请求的结果 (返回的是promise) export function get(url,params){//url传入的接口,params传入的请求参数 return new Promise((resolve,reject)=>{ axios.get(url,{ params:params }).then(res=>{ resolve(res) }).catch(err=>{ reject(err) }) }) } export function post(url,params){//url传入的接口,params传入的请求参数 return new Promise((resolve,reject)=>{ axios.post(url,params).then(res=>{ resolve(res) }).catch(err=>{ reject(err) }) }) }

    别忘记使用export抛出。因为get和post这两种请求方法的格式都差不多,我就不多说了。

    api接口管理

    在api.js文件中引入http.js文件的get和post方法:

    import {get,post} from './http.js'; //传参的请求 export function getClassify(id){ return get('api/app/courseInfo/basis_id='+id) } export function postCourseOutline(id){ return post('api/app/courseChapter',id) } //不传参的请求 export function getAppIndex(){ return get('api/app/recommend/appIndex') } export function postAppBanners(){ return post('api/app/banner') }

    之后就可以有条有理的写请求了。

    Processed: 0.011, SQL: 8