轻松搞定 Uniapp 接口开发:统一封装,高效调用
2022-12-27 17:31:58
Uniapp接口调用:高效封装、统一处理和安全传递
一、统一封装ajax请求
在Uniapp开发中,ajax请求是不可或缺的。为了简化操作,我们可以创建一个名为request
的函数,将uni.request
方法封装在其中。此函数可接收请求参数,并返回一个包含请求结果的Promise。
// request.js
export default function request(options) {
return new Promise((resolve, reject) => {
uni.request({
...options,
success: (res) => resolve(res.data),
fail: (err) => reject(err)
})
})
}
二、处理统一返回值
Uniapp接口通常返回包含code
和data
字段的对象,其中code
表示执行状态,data
表示数据。为了统一处理返回值,我们可以创建一个名为handleResponseData
的函数,将返回值与预期状态进行比较,并抛出错误或返回处理后的数据。
// response.js
export default function handleResponseData(res) {
if (res.code === 200) return res.data
else throw new Error(res.message || '接口请求失败')
}
三、接口统一传token
为了增强接口安全,我们可以通过uni.getStorageSync
获取存储在本地存储中的token,并在请求头中添加Authorization
字段,将其值设置为Bearer {token}
。
// request.js
export default function request(options) {
const token = uni.getStorageSync('token')
return new Promise((resolve, reject) => {
uni.request({
...options,
header: {
Authorization: `Bearer ${token}`
},
success: (res) => resolve(res.data),
fail: (err) => reject(err)
})
})
}
结语
通过统一封装ajax请求、处理统一返回值以及接口统一传token,我们不仅可以提高Uniapp开发效率和代码可维护性,还可以确保接口安全。这些实践将使你的开发过程更加便捷、高效和安全。
常见问题解答
-
Q:使用封装后的
request
函数需要传递哪些参数?
A:与uni.request
方法相同,需要传递url、method、data等参数。 -
Q:
handleResponseData
函数抛出错误时,如何获取错误信息?
A:可以通过catch
语句捕获错误信息,并在控制台中输出或进行其他处理。 -
Q:本地存储中的token是否会过期?
A:这取决于token颁发方的设置,需要查看具体文档或咨询服务端开发人员。 -
Q:接口返回的数据类型有哪些?
A:接口返回的数据类型可以是对象、数组、字符串、数字等。 -
Q:如何自定义接口异常处理逻辑?
A:可以在调用handleResponseData
函数后自定义异常处理逻辑,例如展示自定义提示信息或跳转到特定页面。