Axios 请求
snail-uni 默认集成了 axios 请求封装,兼容适配 uni-app 全端,这得益于 uni-helper 团队开发的 @uni-helper/axios-adapter 插件。
特性
- 兼容
uni-app全端 - 支持
多域名配置 - 支持请求
防抖 - 支持全局
Loading开启关闭及单个接口开启关闭 - 支持全局开启异常
Toast提示, 及单个接口开启关闭
请求配置
在使用之前,我们先来了解 axios 相关配置,配置文件在 env/.env 和具体环境配置文件中
.env- 全环境生效,一些公共的配置可以配置在.env中.env.development- 开发环境配置,运行dev时生效.env.production- 生产环境配置,运行build时生效.env.test- 测试环境配置,运行test时生效
注意
本篇主要介绍 axios 请求相关配置,具体配置请查阅 环境配置篇 ! 修改 .env 及其他环境配置文件时需要 重启 项目, 否则不生效!
.env 配置说明
请求公共配置及参数说明如下,请结合自己的业务进行修改
sh
# 请求相关配置
# 设置TOKEN的key值 默认为 token
VITE_TOKEN_KEY = 'token'
# 设置状态码参数值 默认为 code 根据自己的业务编码修改
VITE_RESPONSE_CODE_KEY = 'code'
# 设置状态码参数值 默认为 msg 根据自己的业务编码修改
VITE_RESPONSE_MSG_KEY = 'msg'
# 请求全局loading, 默认开启, 可以在接口中关闭
VITE_SHOW_LOADING = true
# 是否开启接口错误信息提示, 默认开启, 可以在接口中关闭
VITE_SHOW_ERROR = true
# 请求超时时间
VITE_REQUEST_TIMEOUT = 10000
# 请求头类型
VITE_CONTENT_TYPE = 'application/json;charset=UTF-8'
# 请求成功状态码
VITE_SUCCESS_CODE = [200, 0].env.development 配置说明
开发环境配置及参数说明,请结合自己的业务进行修改, 服务器地址( VITE_SERVER_BASEURL )如果不区分环境的情况下,可以配置在 .env 中,所有环境通用
sh
# 服务器地址
VITE_SERVER_BASEURL = 'https://xxx'.env.production 配置说明
生产环境配置及参数说明,请结合自己的业务进行修改
sh
# 服务器地址
VITE_SERVER_BASEURL = 'https://xxx'接口管理
接口管理在 src/apis 目录下,每个业务模块对应一个文件,如用户相关模块 src/apis/user.ts, 根据自己的业务进行调整。
使用示例
接口案例如下,具体参数根据自己的业务调整,这里以 user 模块为例,其他模块请自行调整
ts
import { request } from '@/utils/request'
// 多域名情况配置, 默认为 `VITE_SERVER_BASEURL` 配置的域名,不需要填写baseURL
const { VITE_SERVER_BASEURL_2: baseURL } = import.meta.env;
export const getChannel = (params: any) => {
return request({
url: `/station/v1/channel/base/tree`,
method: 'get',
params,
baseURL,
loading: false,
showError: false,
});
};getChannel 接口名称,建议名规则请求类型+接口名称(建议英文单词),如 请求栏目频道
- 获取类型为
get, 则名称为 :getChannel - 删除类型为
delete, 则名称为 :deleteChannel - 修改类型为
update, 则名称为 :updateChannel - 新增类型为
add, 则名称为 :addChannel
根据自己的喜好命名,这里只是简单的举例,部分基础开发者对于命名很苦恼!
url为接口地址,如/station/v1/channel/base/tree,这里开头的斜杠/取决于VITE_SERVER_BASEURL的配置,配置域名以斜杠结尾,则不需要,反之则加上。method为请求类型,如get、post、put、delete等params为请求参数,如{ id: 1 },注请求方式为get时,参数为params,其他方式,参数为databaseURL为请求域名,默认为VITE_SERVER_BASEURL配置的域名,无需填写,如果需要多域名,则需要配置,如VITE_SERVER_BASEURL_2,使用请看上面示例代码!
sh
# env.development
VITE_SERVER_BASEURL_2 = 'https://xxx'loading为是否开启loading,默认为true全局开启,不需要单独设置,可以设置为false,表示不显示loading
注: 需要全局开启关闭请在
.env配置文件中设置VITE_SHOW_LOADING为true或false
showError为是否开启异常提示,默认为true全局开启,不需要单独设置,可以设置为false,表示不显示异常提示
注: 需要全局开启关闭请在
.env配置文件中设置VITE_SHOW_ERROR为true或false
接口请求
vue
<template>
<button type="primary" @click="onGetChannel">获取栏目频道</button>
</template>
<script setup lang="ts">
import { getChannel } from '@/apis/user'
const onGetChannel = async () => {
await getChannel({ id: 1 }).then((res) => {
console.log(res)
})
}
</script>