当前位置:   article > 正文

Vue3-Axios二次封装与Api接口统一管理_vue3 axios 接口

vue3 axios 接口

一、安装axios

npm i axios

二、创建utils工具文件夹

创建request.ts文件

  1. import axios from 'axios'
  2. //引入element-plus消息提示
  3. import { ElMessage } from 'element-plus'
  4. //引入用户相关的仓库
  5. import useUserStore from '@/store/modules/user'
  6. //使用axios对象create方法,创建axios实例(其他配置:基础路径、超时时间)
  7. const request = axios.create({
  8. //基础路径
  9. baseURL:'http://127.0.0.1:3007',
  10. timeout: 5000,
  11. })
  12. //添加请求与响应拦截器
  13. request.interceptors.request.use((config) => {
  14. //获取用户相关的小仓库:获取仓库内部token,登录成功以后携带给服务器
  15. const userStore = useUserStore()
  16. if (userStore.token) {
  17. config.headers.token = userStore.token
  18. }
  19. //config配置对象,headers属性请求头会给服务器端携带公共参数
  20. //返回配置对象
  21. return config
  22. },(error)=>{
  23. //对请求错误做什么
  24. return Promise.reject(error)
  25. })
  26. //响应拦截器
  27. request.interceptors.response.use(
  28. (response) => {
  29. //成功回调
  30. //简化数据
  31. return response.data
  32. },
  33. (error) => {
  34. //失败回调:处理http网络错误
  35. //定义一个变量:存储网络错误信息
  36. let message = ''
  37. //http状态码
  38. const status = error.response.status
  39. switch (status) {
  40. case 400:
  41. message = '请求错误(400)'
  42. break
  43. case 401:
  44. message = '未授权,请重新登录(401)'
  45. break
  46. case 403:
  47. message = '拒绝访问(403)'
  48. break
  49. case 404:
  50. message = '请求出错(404)'
  51. break
  52. case 408:
  53. message = '请求超时(408)'
  54. break
  55. case 500:
  56. message = '服务器错误(500)'
  57. break
  58. case 501:
  59. message = '服务未实现(501)'
  60. break
  61. case 502:
  62. message = '网络错误(502)'
  63. break
  64. case 503:
  65. message = '服务不可用(503)'
  66. break
  67. case 504:
  68. message = '网络超时(504)'
  69. break
  70. case 505:
  71. message = 'HTTP版本不受支持(505)'
  72. break
  73. case 1001:
  74. message = '验证失败'
  75. break
  76. default:
  77. message = `连接出错(${status})!`
  78. }
  79. //提示错误信息
  80. ElMessage({
  81. type: 'error',
  82. message,
  83. })
  84. return Promise.reject(error)
  85. },
  86. )
  87. //对外暴露
  88. export default request

三、Api接口统一管理

创建api文件夹

创建user文件夹-1.创建type.ts文件定义数据类型

  1. //用户登录接口携带参数的ts类型
  2. export interface loginFormData {
  3. username: string
  4. password: string
  5. }

2.创建login.ts文件

  1. import request from '@/utils/request'
  2. import type {loginFormData} from './type'
  3. // 登录
  4. export const login = (data:loginFormData)=> {
  5. const {
  6. account,
  7. password
  8. } = data
  9. return request({
  10. url: '/api/login',
  11. method: 'POST',
  12. data: {
  13. account,
  14. password
  15. }
  16. })
  17. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/257147
推荐阅读
相关标签
  

闽ICP备14008679号