Http请求
TuiPlus 3.0 已支持泛型响应
轻量级http请求工具,支持post
、get
、put
和delete
四种基本请求方式。它不追求功能的全面覆盖,而是致力于简约高效,针对用户实际需求进行优化。我们的目标是让插件轻巧易用,让用户在第一时间享受到便捷的体验,真正实现一键启动,快速上手。
支持平台
安卓 | ios | web | 微信小程序 |
---|---|---|---|
√ | √ | √ | √ |
创建 axios.uts(请求和响应拦截处理)
js
import config from '../config/config.uts'
import { TuiAxios } from '@/uni_modules/tui-plugins'
import { state } from '../store/user.uts'
const reqIns = new TuiAxios({
baseURL: config.baseUrl,
timeout: 6000,
header: {
'Content-Type': 'application/json',
appid: config.appSelect
}
})
//请求拦截逻辑(设置header token 重新拼接接口地址,参数重新设置等在这里处理)
reqIns.requestInterceptor = (config : Map<string, any>) => {
const data=config.get('data') as UTSJSONObject
data.set('name','增加一个参数')
const token = state.token
const header = config.get('header') as UTSJSONObject
header.set('token', token)
}
//响应拦截逻辑(获取到接口数据后根据状态码做相应的处理逻辑)
reqIns.responseInterceptor = (res : RequestSuccess<any>, resolve : (res : UTSJSONObject) => void, reject : (err : Error) => void) => {
if (typeof (res.data) == 'string') {
resolve({ data: res.data })
return
}
const resp : UTSJSONObject = res.data as UTSJSONObject
const code : Number = resp.getNumber('code') as number
if (code == 0) {
resolve(resp)
} else {
const message : string = resp.getString('message') as string
reject(new Error(`${message}`))
}
}
export default reqIns
使用方法
接口统一管理
js
import axios from '../../axios/axios.uts'
import { WorTaskResponse } from './interface'
/**
* 获取工作任务的接口
* @param {Object} data - 请求参数,用于传递查询条件或其他数据
* @param {boolean} [cache=false] - 是否使用缓存,默认为 false,表示不使用缓存
* @returns {Promise<WorTaskResponse>} - 返回一个 Promise,解析为包含工作任务信息的响应对象
*/
export function getWorTask(data: any = {}, cache: boolean = false): Promise<WorTaskResponse> {
return axios.post<WorTaskResponse>('getWorTask', data, { cache })
}
在页面中使用
js
import { getWorTask, WorTaskList, WorTaskType, WorTaskResponse } from '@/api'
getWorTask({
current: current.value,
pageSize: pageSize.value,
name: '',
step: `${curNow.value}`
}).then((res : WorTaskResponse) => {
}).catch((err : any | null) => {
uni.hideLoading()
loading = false
reject(err)
})