美文网首页
接口处理封装请求模块

接口处理封装请求模块

作者: amanohina | 来源:发表于2021-03-01 19:45 被阅读0次

对接口后端的接口文档之后

封装请求模块

项目中我们需要通过接口进行数据请求,为了便于操作,要封装用于请求操作的函数,那么在Vue.js中,我们通常是使用Axios进行AJAX请求操作的,首先,就来安装Axios吧

npm i axios

在utils目录下,创建request.js文件,作为请求功能模块,在文件中引入Axios

// utils/request.js
import axios from 'axios'

// 创建axios实例
const request = axios.create({
})

export default request

显而易见,每次请求接口的基地址都有2个,每次请求接口书写完整地址就非常的繁琐

这个时候就可以给request设置拦截器来判断url前缀,再将对应基地址设置给config.baseURL

  • axios具有请求拦截器和响应拦截器,用于在请求与响应前进行提前处理
  • 请拦截器config为本次请求的相关配置信息,这里通过baseURL来修改请求的基地址
  • 操作完毕之后,一定要返回config让配置生效,否则请求无法成功
import axios from 'axios'

// 创建axios实例
const request = axios.create({
})

// 封装URL基地址检测函数
function getBaseURL (url) {
  if (url.startsWith('/这里是后台接口的前缀')) {
    return '这里是后台接口的服务URL'
  } else {
    return '这里是前台接口的服务URL'
  }
}

// 设置请求拦截器
request.interceptors.request.use(function (config) {
// 判断config.url的前缀是什么,然后进行请求baseURL的设置
  config.baseURL = getBaseURL(config.url)
  return config
})

export default request

测试请求,测试后可删除

// App.vue
<script>
import request from '@/utils/request'

request({
  method: 'GET',
  // 请求某个前台接口
  url: '/front/ad/getAdList',
  // 请求某个后台数接口
  // url: '/boss/v2/api-docs?group=edu-boss-boot'
}).then(res => {
  console.log(res)
})
export default {
}
</script>

相关文章

网友评论

      本文标题:接口处理封装请求模块

      本文链接:https://www.haomeiwen.com/subject/hdwafltx.html