随笔 - 833  文章 - 1  评论 - 106  阅读 - 200万

axios请求接口http_Vue实战038:api接口模块化统一管理【转】

一开始使用Vue时,我们用axios发送请求时一般会将api接口直接写在对应的请求方法中,这样当我们项目需要修改请求时我们就需要先去找到当前的组件,然后再找到对应的事件方法,最后才能将api修改,这样维护起来剧会变的很费时费力(特别是接口比较多的时候)。

//举个栗子this.$axios.post('http://127.0.0.1:8000/login/',{ username:this.uname, password:this.password,}).then(res=>{if(res.status==200){ Message.success('登陸成功') this.$router.push('/')}}).catch(error=>{ Message.error(error)})

 

随着适用了Vue,这时我们就会把api提取出来,用一个api.js文件来统一存放api接口,通过expot导出对应的接口,然后在用到的组件中引用该接口,这样当我们需要修改接口时只要到api文件中去统一处理即可,也方便我们了解项目中实现了哪些功能,目前这个项目是定义了一个baseURL,然后与接口进行拼接生成一个常量api,再将其导出给其他组件调用。

 

 如果你的项目对axios进行了封装,那么我们这里还可以对api进一步优化,我们可以在封装的axios设置好基本路由,这样当我们拿到api后系统会为我们自动拼接路由,同时还可以统一的异常处理方案简化了每个请求书写,提高代码的可读性。如何封装axios可以参考文章 Vue实战037:axios二次封装和使用,

 

 

接下来我们继续优化api管理,继续拿我们的登陆接口来解析:http://127.0.0.1:8000/login/ ,这里可以分为4部分,分别是支持的协议(http协议),ip(127.0.0.1),端口(8000),路由(login/),假设每个api都是从同一台服务发出的,那么每个接口的协议、ip和端口都是一样的,这时我们就可以通过axios.defaults.baseURL = 'http://127.0.0.1:8000/'统一指定。

 

 如何定义api模块

这里我们准备将axios.js引入api.js中,然后调用axios.js中的接口,接口需要提供3个参数,分别是method、url、params,这里可以用箭头函数,写起来简单。这样我们就定义了一个login方法,只需要传入method和params参数即可。

import api from '@/api/axios.js'export const login = (method, params) => api(method, 'login/', params)

如何使用

在组件中导入api中的方法,用到哪个导入哪个即可,然后再事件中调用我们的login方法,传入对应的method和params参数接口,是不是比之前简单又简洁了很多,封装还有 个好处就是可以很好的避开操作token,这样就不用在每个接口都手动的提交token操作了。

//引入组件中的方法import {login} from '@/api/api.js'//调用login方法,传入method和params即可login('post',{ username:this.uname, password:this.password,}).then(res=>{ if(res.status==200){ this.$message.success('登陸成功') this.$router.push('/') }}).catch(error=>{ this.$message.error(error)})

原文链接:https://blog.csdn.net/weixin_39922929/article/details/112399176

posted on   3D入魔  阅读(154)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2017-09-06 C#对.zip 存档读取和写入【转】
2017-09-06 DWG/DGN格式导入Arcgis;转化为shp格式;更改地理坐标;导入Google Earth【转】
2017-09-06 这13个开源GIS软件,你了解几个?【转】
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示