项目中的api层你是如何处理的?

一、api层:

1、service.js

处理请求拦截和响应拦截

// requset/service.js
import axios from 'axios'
// 创建一个axios实例
const service = axios.create({
    // 设置请求的基础路径
    baseURL: "",
    // 设置请求超时的时间
    timeout: 8000
})

// 处理请求拦截 页面-->拦截器-->服务器,在请求发送之前统一执行某些操作
service.interceptors.request.use((config) => {
    // 成功的方法,在请求头统一添加token值
    let toekn = sessionStorage.getItem("token")
    token && (config.headers["token"] = token)
    return config
},(err)=>{
    // 失败的方法
    return Promise.reject(err)
})
// 处理响应拦截 服务器-->拦截器-->页面,在接收响应结果之前统一执行某些操作
service.interceptors.response.use((res)=>{
    // 成功的方法,可能后台返回的数据并不是我想要的
    // 处理状态码
    let data = res.data
    return data
},(err)=>{
    return Promise.reject(err)
    
})

export default service

2、common.js

处理请求方式和请求参数

import service from "./service"
// 处理get
export function requestGet(url,data){
    // 处理参数
    // 特殊的处理...
    return service.get(url,data)
}
// 处理post
export function requestPost(url,data){
    // 处理参数
    return service.post(url,data)
}

3、api文件夹

业务js

// api/app.js
// 处理业务
import {requestGet,requestPost} from "../common.js"
// 获取列表数据
export function getList(url,data){
    return new Promise((resolve,reject)=>{
        // 参数,地址
        requertGet(url,data).then(res=>{
            // 处理结果
            resolve(res)
        }).catch(err=>{
            // 处理结果
            reject(err)
        })
    })
}
// 登录
export function login(url,data){
    return new Promise((resolve,reject)=>{
        // 参数,地址
        requestPost(url,data).then(res=>{
            // 处理结果
            resolve(res)
        }).catch(err=>{
            // 处理结果
            reject(err)
        })
    })
}

二、使用示例

import {getList,login} from "@/request/api/app.js"

onMounted(()=>{
    getList("/getList").then((res)=>{
        console.log(res)
    })
    login("/login",{username:"",password:""}).then((res)=>{
        console.log(res)
    })
})
#前端##前端架构师#
全部评论

相关推荐

头像
2025-12-14 11:33
门头沟学院 Java
这是一篇迟来的秋招反思总结。虽然可能是拿到了开发的大sp,或者说小ssp的开发offer,但是真正签下三方的那一刻却并没有什么情绪波动,只觉得“这事结束了,我该继续定下下一个阶段的目标了”。回顾一下自己的秋招历程。我的秋招真正的起点可能起源于去年的年中。那时的我可以说对于求职所需的技巧都完全不懂。没有人带,没有带我求职的“导师”,我所做的只能是问几个学长,然后在各种平台找大佬咨询。最后还是选择了资料最多的Java后端开发,从此我的学习便开始了。刷力扣、刷视频、写项目,日复一日,加了知识星球还去打卡,回看当时打卡记录持续了180+天,直到找到了日常实习才结束。不能说是007,但是平均下来也有了995的强度。在年底找到了第一份日常实习,于是踏上了说走就走的旅程。实习的时候每周都要请半天假从公司坐高铁回到学校,开完会再回去,从中午12点到晚上12点全都在路上,这份辛苦只有自己心里清楚。接着开始找暑期实习,先是被腾讯搞了一通,面微信面穿后录用评估挂,接着又是美团全部答上来后超时自动挂,最后在一个普通的下午突然收到了阿里的实习offer。那一刻所有的努力和辛苦都具象化。暑期实习的过程中,运气好进到了一个强度相对比较低的组,于是在7、8月份每天晚上下班后回去继续刷题、复习各技术栈,还要抽时间面试。到了9月初已经面了40+场,进了面的只挂过一次岗位不匹配的腾讯的存储类岗位。9月陆续收到了多个offer,我以为自己也许会算比较优秀?开始谈薪后发现自己其实只是普通的一员,加了各大信息共享群,发现总是有比我更强的人,也有算法的大佬比我断档的领先。至于我为什么没选算法,在之前的文章里有讲到;而开发的大佬则从本科就开始有了相关的沉淀,我自然无法比肩。于是我想到了“比你优秀的人比你还努力”,我有什么可骄傲的。于是开始继续学习,继续成长,这不是抖M式的强迫自己受苦,也不单纯是为了以后的竞争力,还是为了自己的充实感和心理满足。签下三方的时候没有什么情绪波动,只是普通的点了下按钮,然后转头又去继续改bug了。我想我老了也会继续保持学习,让我不被时代抛弃。
NBA球星伦纳德:这段时间看了佬的故事, 也狠狠的激励了我, 保持持续学习的状态
26届校招投递进展
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务