zoukankan      html  css  js  c++  java
  • 小程序api封装(方法一)

    研究小程序的路上越走越远....坑很多 很不习惯刚刚开始

    在utils文件夹下面新增api.js  http.js文件

    // http.js
    module.exports = {
      http(url, method, params) {
         // 获取token,自行获取token和签名,token和签名表示每个接口都要发送的数据
        let token = ''
         // 获取签名 (后台怎么定义的,就传什么) 具体情况穿不穿
        let sign = ''
        let data = {
          token,
          sign
        }
        // 在这里判断一下data是否存在,params表示前端需要传递的数据,params是一个对象,有三组键值对,
        // data:表示请求要发送的数据,success:成功的回调,fail:失败的回调,这三个字段可缺可无,其余字段会忽略
        if (params.data) { 
          for (let key in params.data) { // 在这里判断传过来的参数值为null,就删除这个属性
            if (params.data[key] == null || params.data[key] == 'null') {
              delete params.data[key]
            }
          }
          data = {
            ...data,
            ...params.data
          }
        }
         // 就是拼接上前缀,此接口域名是开放接口,可访问 如果开发环境可以勾选详情选项的 不校验合法域名、TLS版本及HTTPS证书
        wx.request({
          url: '合法域名' + url,
          // 判断请求类型,除了值等于'post'外,其余值均视作get其他的请求类型也可以自己加上的
          method: method == 'post' ? 'post' : 'get', 
          data,
          // post请求 把header 该为 application/x-www-form-urlencoded 就可以了
          header: {
            'content-type': method == 'get' ? 'application/json' : 'application/x-www-form-urlencoded'
          },
          success(res) {
            params.success && params.success(res.data)
          },
          fail(err) {
            wx.showToast({
              title: '服务器内部错误',
              icon: 'none',
              duration: 1500
            })
            params.fail && params.fail(err)
          },
          complete() {
            setTimeout(() => {
              wx.hideLoading();
            },1500)
          }
        })
      }
    }
    // api.js
    // 在这里面定义所有接口,一个文件管理所有接口,易于维护
    // 引入刚刚封装好的http模块,import属于ES6的语法,微信开发者工具必须打开ES6转ES5选项
    import { http } from './http'; 
    
    // 每一个接口定义一个函数,然后暴露出去,供逻辑代码调用
    // 接口请求的路由地址以及请求方法在此处传递
    function postLoginApi(params) { 
      http('/api/xxx/login', 'post', params)
    }
    
    function getUserListApi(params) { 
      http('/api/xxx/list', 'get', params) 
    }
    
    // 暴露接口
    export default { 
      postLoginApi,
      getUserListApi
    }

    页面调用

    
    
      import http from '../../utils/api' // 引入api接口管理文件
    getData(){
        http.postLoginApi({ // 调用接口,传入参数
          data: {
            token: '460512FF0FE2392D6CB6D8A6560805CC'
          },
          success: res => {
            console.log('接口请求成功', res)
            this.setData({
              // data定义的数据
              userInfo: res.data
            })
          },
          fail: err => {
            console.log(err)
          }
        })
      },
    onLoad: function (){
        this.getData()
    }

      原创未经允许不得转载!!!转载请注明出处~谢谢合作;

  • 相关阅读:
    JArray
    签名和验签
    private、protected、public和internal的区别
    DataTime.Now.Ticks
    NameValuePair 简单名称值对节点类型
    01安卓目录结构
    SDK目录结构
    java wait和notify及 synchronized sleep 总结
    安卓常用的第三方框架
    OkHttp使用教程
  • 原文地址:https://www.cnblogs.com/lhl66/p/12888408.html
Copyright © 2011-2022 走看看