返回

轻松搞定 Uniapp 接口开发:统一封装,高效调用

前端

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接口通常返回包含codedata字段的对象,其中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函数后自定义异常处理逻辑,例如展示自定义提示信息或跳转到特定页面。