vue架构-如何封装API(axios+promise)

简单分享一个封装api的案例

api封装还是有比较多的种类的,能做到将复用多的代码封装好,可维护性高就是好封装。

案例一

具体思路是将api请求分为四层:

  • service层:连接后台,拦截处理

示例代码:

import axios from 'axios'
import Vue from 'vue'

// 获取token
function getToken(){
    return sessionStorage.getItem('token')
}
// 创建axios实例
let service = axios.create({
    baseURL: "https://lianghj.top:8888/api/private/v1/",
    timeout: 3000
})
// 配置请求拦截器
service.interceptors.request.use(
    (config)=>{
        // 返回 config
        config.headers.Authorization = getToken()
        return config
    })

export default service
  • common层:封装请求方式

示例代码:

import service from './service'

//封装post请求
export function requestPost(url, data){
    return service.post(url,data)
} 
  • api层:二次封装,设置url值、接收请求参数

示例代码:

import {requestPost} from '../common'

// 登录接口
export function login(data){
    return new Promise((resolve, reject)=>{
        requestPost('/login', data).then(res=>resolve(res.data))
        .catch(err=>reject(err))
    })
}
  • 业务层:具体业务模块

示例代码:

<script>
    import { login } from '../request/api/login'
    //this.loginForm是login接口需要的参数值
    login(this.loginForm).then(res=>console.log(res))

</script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值