Generating commit message...
This commit is contained in:
99
mini-program/api/index.js
Normal file
99
mini-program/api/index.js
Normal file
@@ -0,0 +1,99 @@
|
||||
// API模块主入口
|
||||
import request from './request.js'
|
||||
import * as services from './services.js'
|
||||
|
||||
// 导出所有服务
|
||||
export * from './services.js'
|
||||
|
||||
// 导出请求实例
|
||||
export { request }
|
||||
|
||||
// 默认导出
|
||||
export default {
|
||||
// 请求实例
|
||||
request,
|
||||
|
||||
// 所有服务
|
||||
...services,
|
||||
|
||||
// 工具函数
|
||||
utils: services.apiUtils,
|
||||
|
||||
// 初始化配置
|
||||
init(config = {}) {
|
||||
// 可以在这里进行一些初始化配置
|
||||
console.log('API模块初始化完成', config)
|
||||
},
|
||||
|
||||
// 设置认证token
|
||||
setAuthToken(token) {
|
||||
uni.setStorageSync('token', token)
|
||||
},
|
||||
|
||||
// 获取认证token
|
||||
getAuthToken() {
|
||||
return uni.getStorageSync('token')
|
||||
},
|
||||
|
||||
// 清除认证信息
|
||||
clearAuth() {
|
||||
uni.removeStorageSync('token')
|
||||
uni.removeStorageSync('refreshToken')
|
||||
},
|
||||
|
||||
// 检查是否已登录
|
||||
isLoggedIn() {
|
||||
return !!this.getAuthToken()
|
||||
},
|
||||
|
||||
// 统一错误处理
|
||||
handleError(error, defaultMessage = '操作失败') {
|
||||
const errorMessage = error.message || defaultMessage
|
||||
const errorCode = error.code || 'UNKNOWN_ERROR'
|
||||
|
||||
// 可以根据错误码进行不同的处理
|
||||
switch (errorCode) {
|
||||
case 'UNAUTHORIZED':
|
||||
this.clearAuth()
|
||||
uni.navigateTo({ url: '/pages/auth/login' })
|
||||
break
|
||||
case 'NETWORK_ERROR':
|
||||
uni.showToast({ title: '网络连接失败', icon: 'none' })
|
||||
break
|
||||
default:
|
||||
uni.showToast({ title: errorMessage, icon: 'none' })
|
||||
}
|
||||
|
||||
return { error: true, code: errorCode, message: errorMessage }
|
||||
},
|
||||
|
||||
// 请求包装器,自动处理错误
|
||||
async withErrorHandling(promise, successMessage = '操作成功') {
|
||||
try {
|
||||
const result = await promise
|
||||
if (successMessage) {
|
||||
uni.showToast({ title: successMessage, icon: 'success' })
|
||||
}
|
||||
return { success: true, data: result }
|
||||
} catch (error) {
|
||||
return this.handleError(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 自动初始化
|
||||
const api = {
|
||||
request,
|
||||
...services
|
||||
}
|
||||
|
||||
// 全局错误处理
|
||||
const originalRequest = uni.request
|
||||
uni.request = function(config) {
|
||||
return originalRequest.call(this, config).catch(error => {
|
||||
console.error('请求失败:', error)
|
||||
throw error
|
||||
})
|
||||
}
|
||||
|
||||
export default api
|
||||
Reference in New Issue
Block a user