自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

請(qǐng)求后端接口全攻略:通用封裝 + 請(qǐng)求攔截器,一篇就夠!

開發(fā) 后端
本文將手把手帶你掌握 uni.request 的基本用法和封裝通用請(qǐng)求方法。

在 UniApp 中與后端接口交互最常用的方式是 uni.request,但如果你每次都手動(dòng)調(diào)用、拼地址、寫 headers,會(huì)非常冗余、易錯(cuò)。

本文將手把手帶你:

  • 掌握 uni.request 的基本用法
  • 封裝通用請(qǐng)求方法
  • 加入請(qǐng)求/響應(yīng)攔截器(如 token 注入、統(tǒng)一錯(cuò)誤處理)

uni.request 基礎(chǔ)用法

uni.request({
  url: 'https://api.example.com/user',
  method: 'GET',
  data: { id: 1 },
  success: (res) => {
    console.log('響應(yīng)數(shù)據(jù):', res.data)
  },
  fail: (err) => {
    console.error('請(qǐng)求失敗:', err)
  }
})

默認(rèn)支持所有平臺(tái),包括 H5、小程序、App。

封裝通用 request 方法

我們創(chuàng)建一個(gè)統(tǒng)一的 request.js 工具模塊,集中處理:

  • 基礎(chǔ) URL 拼接
  • 請(qǐng)求方法封裝(get/post 等)
  • token 注入(請(qǐng)求攔截器)
  • 狀態(tài)碼統(tǒng)一處理(響應(yīng)攔截器)

文件目錄結(jié)構(gòu)推薦

├── utils/
│   └── request.js     # 請(qǐng)求封裝模塊
├── config/
│   └── index.js       # 全局配置項(xiàng),如 baseURL

config/index.js:配置項(xiàng)

export default {
  baseURL: 'https://api.example.com',
  timeout: 10000
}

utils/request.js:通用封裝

import config from '@/config/index.js'
import { get } from './storage.js'  // 用于獲取 token 等緩存

const request = (options = {}) => {
  const {
    url,
    method = 'GET',
    data = {},
    headers = {}
  } = options

  return new Promise((resolve, reject) => {
    uni.request({
      url: config.baseURL + url,
      method,
      data,
      timeout: config.timeout,
      header: {
        'Content-Type': 'application/json',
        'Authorization': get('token') || '',  // 請(qǐng)求攔截器:自動(dòng)加 token
        ...headers
      },
      success: (res) => {
        const { statusCode, data } = res

        // 響應(yīng)攔截器
        if (statusCode === 200) {
          resolve(data)
        } else {
          uni.showToast({ title: data.message || '請(qǐng)求錯(cuò)誤', icon: 'none' })
          reject(data)
        }
      },
      fail: (err) => {
        uni.showToast({ title: '網(wǎng)絡(luò)異常', icon: 'none' })
        reject(err)
      }
    })
  })
}

// 快捷方法封裝
export const getRequest = (url, data = {}) => request({ url, data, method: 'GET' })
export const postRequest = (url, data = {}) => request({ url, data, method: 'POST' })

export default request

使用方式(更優(yōu)雅)

示例頁面中使用:

import { getRequest, postRequest } from '@/utils/request.js'

// 獲取用戶信息
getRequest('/user/info').then(res => {
  console.log('用戶信息:', res)
})

// 提交表單
postRequest('/form/submit', { name: 'Tom' }).then(res => {
  uni.showToast({ title: '提交成功' })
})

攔截器核心能力

攔截階段

功能

請(qǐng)求前

自動(dòng)加 token / 簽名 / 公共參數(shù)

響應(yīng)后

統(tǒng)一處理錯(cuò)誤 / 彈出提示框

請(qǐng)求失敗

網(wǎng)絡(luò)錯(cuò)誤統(tǒng)一提示

小結(jié)

能力點(diǎn)

收獲

uni.request

理解基礎(chǔ)使用方法

模塊封裝

構(gòu)建統(tǒng)一請(qǐng)求管理方式

攔截器設(shè)計(jì)

提高代碼復(fù)用性與健壯性

責(zé)任編輯:趙寧寧 來源: Ssoul肥魚
相關(guān)推薦

2021-11-03 17:04:11

攔截器操作Servlet

2021-05-08 21:42:59

微服務(wù)Nacos原理

2022-07-19 19:39:05

RTK技術(shù)定位技術(shù)

2020-10-17 08:48:12

搞懂“智能聯(lián)接”

2010-08-25 14:36:02

DHCP服務(wù)器

2020-09-10 06:56:12

SringMVC源碼參數(shù)

2009-10-12 15:06:59

2011-04-29 13:41:41

筆記本清潔

2011-04-29 13:41:36

筆記本液晶屏

2011-04-29 13:41:49

筆記本硬盤

2011-04-29 13:41:50

2011-04-29 13:41:52

筆記本電池

2011-04-29 13:41:44

筆記本散熱

2013-04-15 10:48:16

Xcode ARC詳解iOS ARC使用

2024-05-07 09:01:21

Queue 模塊Python線程安全隊(duì)列

2013-06-08 11:13:00

Android開發(fā)XML解析

2011-08-09 09:37:49

2010-04-23 14:04:23

Oracle日期操作

2010-08-04 18:03:27

NFS服務(wù)器

2021-09-29 09:00:19

Linux虛擬機(jī)CentOS
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)