uniapp封装接口

1.创建一个config文件夹,在里面创建app.js

let httpApi = '' //接口公共部分


module.exports = {//要传的 请求头 token 等
    HTTP_REQUEST_URL:httpApi,
    HEADER:{
        Headers,
        Authorization:'token ', 
'i-branch':'zh'
},

//H5接口是浏览器地址
HTTP_REQUEST_URL: httpApi || window.location.protocol + "//" + window.location.host,

// 回话密钥名称 请勿修改此配置

TOKENNAME: '',
USER_ID:
'',
USER_STORE:
'',
USER_INFO:
''
};

 2.创建一个utils文件在里面创建request.js,把config里面的app.js引入进去

import {
    HEADER,
    HTTP_REQUEST_URL
    
} from '@/config/app';

// function toLogin() {
//     uni.showToast({
//         icon: 'none',
//         duration: 2000,
//         title: '请先登录'
//     });

//     setTimeout(function() {
//         uni.reLaunch({
//             url: '/pages/login/login',
//         })
//     }, 2000);
// }

/**
 * 发送请求
 * noAuth 是否验证token 
 */
function baseRequest(url, method, data, {
    noAuth = false,
    noVerify = false
}) {
    console.log(url)
    let Url = HTTP_REQUEST_URL,
        header = HEADER;
    console.log(Url)
    // if (!noAuth) {
    //     //登录过期自动登录 检查token 存在则登录 否则返回登录
    //     if (!uni.getStorageSync(USER_ID)) {
    //         // 跳转登录页面
    //         toLogin();
    //         return Promise.reject({
    //             msg: '未登录'
    //         });
    //     }
    // }

    return new Promise((reslove, reject) => {
        uni.request({
            url: Url + url,
            method: method || 'GET',
            header: header,
            data: data || {},
            success: (res) => {
                reslove(res, res);
        // // #endif
                // if (noVerify)
                //     reslove(res.data, res);
                // if (res.data.code == 0)
                //     reslove(res.data, res);
                // else if (res.data.code == 10000)
                //     reslove(res.data, res);
                // else if ([410000, 410001, 410002, 40000].indexOf(res.data.code) !== -1) {
                //     toLogin();
                //     reject(res.data);
                // } else if (res.data.code == 501) {
                //     // uni.reLaunch({
                //     //     url: '/pages/error/index'
                //     // })
                //     reject(res.data);
                // } else {
                //     uni.showToast({
                //         icon: 'none',
                //         duration: 2000,
                //         title: res.data.message || '请求失败'
                //     });
                //     reject(res.data.message || 'Error');
                // }
            },
            fail: (message) => {
                uni.showToast({
                    icon: 'none',
                    duration: 2000,
                    title: '请求失败'
                });
                reject('Request Fail');
            }
        })
    });
}

const request = {};

['options', 'get', 'post', 'put', 'head', 'delete', 'trace', 'connect'].forEach((method) => {
    request[method] = (api, data, opt) => baseRequest(api, method, data, opt || {})
});



export default request;

3.创建一个api文件 里面创建需要封装接口的文件 把utils里面的request.js引入进去 

import request from "@/utils/request.js";

/**
 * ai回复
 * @param int data
 */
export function conversation(data) {
    return request.post(`/conversation-v2`, data, {
        noAuth:true
    })
}

4.在哪个页面需要掉request.js的接口就在哪个页面引入就行了

    import {
        conversation
    } from '@/api/homepage';
    import {
        USER_ID,
        USER_INFO
    } from '@/config/app';

    methods: { 

        // 发送
            emojiSend() {
          
                        
                conversation(date).then(res => {
                    const data = res.data
                    
                })
        
            },
}

 

posted @ 2023-06-19 12:02  红烧鼻屎  阅读(239)  评论(0)    收藏  举报