uni-appリクエストのバックグラウンドインターフェイスメソッドのカプセル化

序文:

         uni-appでのメソッドソートのリクエストバックグラウンドインターフェース。パーソナルパッケージバージョンと公式メソッド。

公式エントリー:

パッケージバージョン:以下のディレクトリを参照してください

1.インターフェイス情報が主に配置される新しいフォルダーAPIを作成します

login.jsは、ログインページのインターフェイスメソッドを配置します

import axios from '../util/http'
const Login = {
	 // 获取验证码
	goPhoneCode(params) {
	  return axios({
		method:'get',
		url:`/phoneCode`,
		params:params
	  })
	},
}
export default Login

index.jsはすべてのインターフェースメソッドを登録します

/**
 * api接口的统一出口
 */
import common from './common'
import login from './login'

export default {
  common,
  login,
}

2.新しいutilフォルダーを作成し、3つの新しいファイルを作成します

auth.jsによってカプセル化されたキャッシュメソッド

const TokenKey = 'uni_token';

// 认证令牌
export function getToken() {
	return uni.getStorageSync(TokenKey)
}

export function setToken(token) {
	return uni.setStorageSync(TokenKey, token)
}

export function removeToken() {
	return uni.removeStorageSync(TokenKey)
}

http.jsによってカプセル化されたリクエストインターフェイスメソッド

import {getToken,removeToken} from './auth';
import env from './env';


// 封装数据返回成功提示函数------------------------------------------------------
function successState(res) {
  let code = res.data.code;
	console.log('@return-data:')
	console.log(res)
	//公共报错提醒
	if(code !== 200){
		// 非成功状态码弹窗
		uni.showToast({
			icon: 'none',
			duration: 3000,
			title: `${res.data.msg}`
		});
	}
  // 登陆失效
  if (res.data.code === 403) {
  	// 清除本地token
  	removeToken()
  	// 关闭所有页面返回到登录页
  	uni.reLaunch({
  		url: '/pages/login/login'
  	})
  }
  console.log('/------http(END)------/')
	
  return res
}
// 封装数据返回失败提示函数------------------------------------------------------
function errorState(err) {
  // 请求失败弹窗
  uni.showToast({
  	icon: 'none',
  	duration: 3000,
  	title: '服务器错误,请稍后再试'
  });
  console.log('/------http(END)------/')
}


// 封装axios---------------------------------------------------------------------
function service(options = {}) {
	options.url = `${env.baseUrl}${options.url}`;
	// 判断本地是否存在token,如果存在则带上请求头
	if (getToken()) {
		options.header = {
			'content-type': 'application/json',
			'authorization': `${getToken()}`	// 这里是token
		};
	}
	console.log('/------http(START)------/')
  console.log('@all-url:')
  console.log(options.url)
  console.log('@params:')
  console.log(options)
	
	return new Promise((resolved, rejected) => {
		options.success = (res) => {
			successState(res)
			resolved(res)
		};
		options.fail = (err) => {
			errorState(err)
			rejected(err);
		};
		uni.request(options);
	});
}

export default service;v

env.jspublicbaseurlアドレスおよびその他の変数

"use strict";
/**
 * 	appid : 		小程序appid
 *  baseUrl : 		服务端域名
 */
export default {
	appid: '****',
	baseUrl: 'http://***.70.94.135:7001'
}

3.main.jsのグローバル構成

//接口
import api from './api'
Vue.prototype.$api = api

4.ページでの特定の使用

mounted() {
		this.getLoginCap()
	},
	methods: {
		//获取验证码
		getLoginCap(){
			let phone = '13519102731'
			this.$api.login.goPhoneCode({phone}).then(res=>{
					debugger
				if(res.data.code == 200){
				}
			})
		}
	}

f12のconsole.logを開くと、特定のアドレス、パラメーター、および戻り値を確認できます。

公式の方法:私をクリックして直接入力してください

uni.request(OBJECT)

各ミニプログラムプラットフォームが実行されている場合、ネットワーク関連のAPIは、使用する前にドメイン名のホワイトリストで構成する必要があります。

OBJECTパラメータの説明

パラメータ名 の種類 必須 デフォルト 説明する プラットフォームの違いの説明
url ストリング はい 開発者サーバーのインターフェースアドレス
データ Object / String / ArrayBuffer いいえ リクエストパラメータ アプリはArrayBufferタイプをサポートしていません
ヘッダ 物体 いいえ リクエストのヘッダーを設定します。ヘッダーにリファラーを設定することはできません。 アプリ側とH5側は自動的にCookieを取得し、H5側は手動で変更できません
方法 ストリング いいえ 得る 有効な値については、以下の説明を参照してください
タイムアウト 番号 いいえ 60000 タイムアウト時間(ミリ秒単位) H5(HBuilderX 2.9.9+)、APP(HBuilderX 2.9.9+)、WeChatアプレット(2.10.0)、Alipayアプレット
データ・タイプ ストリング いいえ json jsonに設定すると、返されたデータに対してJSON.parseを実行しようとします。
responseType ストリング いいえ 文章 応答のデータ型を設定します。有効な値:text、arraybuffer Alipayアプレットはサポートしていません
sslVerify ブール値 いいえ true SSL証明書を確認する アプリAndroidは(HBuilderX 2.3.3+)のみをサポートし、オフラインパッケージングは​​サポートしません
withCredentials ブール値 いいえ false クロスドメインリクエストでクレデンシャル(Cookie)を伝送するかどうか H5サポートのみ(HBuilderX 2.6.15+)
firstIpv4 ブール値 いいえ false DNS解決にはipv4が推奨されます アプリ-Androidのみがサポートされています(HBuilderX 2.8.0以降)
成功 関数 いいえ 開発者サーバーから正常に返されたコールバック関数を受信します
不合格 関数 いいえ インターフェイス呼び出し失敗のコールバック機能
完了 関数 いいえ インターフェイス呼び出しの終了のコールバック関数(呼び出しが成功または失敗した場合に実行されます)

メソッドの有効な値

注:メソッドの有効な値は大文字にする必要があります。プラットフォームごとにサポートされているメソッドの有効な値は異なります。詳細については、次の表を参照してください。

方法 アプリ H5 WeChatアプレット Alipayアプレット Baiduアプレット ByteDanceアプレット、Feishuアプレット
得る
役職
置く バツ
消去 バツ バツ
接続 バツ バツ バツ バツ
バツ バツ バツ
オプション バツ バツ
痕跡 バツ バツ バツ バツ

成功リターンパラメータの説明

パラメータ の種類 説明する
データ Object / String / ArrayBuffer 開発者サーバーから返されたデータ
statusCode 番号 開発者サーバーから返されたHTTPステータスコード
ヘッダ 物体 開発者サーバーから返されたHTTP応答ヘッダー
クッキー Array.<string> 文字列配列としてフォーマットされた、開発者サーバーから返されるCookie

データデータの説明

サーバーに送信される最終データは文字列型です。受信データが文字列型でない場合は、文字列に変換されます。変換ルールは次のとおりです。

  • GET メソッドの場合、データはクエリ文字列に変換されます。 たとえば { name: 'name', age: 18 } 、変換された結果は name=name&age=18です。
  • POST メソッドで header['content-type'] ある データに対して application/json 、JSONシリアル化が実行されます。
  • POST メソッドで header['content-type'] ある データの場合 application/x-www-form-urlencoded 、データはクエリ文字列に変換されます。

おすすめ

転載: blog.csdn.net/qq_41619796/article/details/122704516