# 接口请求

# MinRequest.js

代码地址utils/MinRequest.js

核心代码如下,isCompleteURL如不是完整URL,会添加baseURL:


 
 
 





















request(options = {}) {
  options.baseURL = options.baseURL || this[config].baseURL
  options.dataType = options.dataType || this[config].dataType
  options.url = MinRequest[isCompleteURL](options.url) ? options.url : (options.baseURL + options.url)
  options.data = options.data
  options.header = { ...options.header,
    ...this[config].header
  }
  options.method = options.method || this[config].method

  options = { ...options,
    ...MinRequest[requestBefore](options)
  }

  return new Promise((resolve, reject) => {
    options.success = function(res) {
      resolve(MinRequest[requestAfter](res))
    }
    options.fail = function(err) {
      reject(MinRequest[requestAfter](err))
    }
    uni.request(options)
  })
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 在main.js中引入

 
 
 



 




import MinRequest from './utils//MinRequest'
import minApi from './api/api'
Vue.use(MinRequest)

const app = new Vue({
  store,
  minApi,
  i18n,
  ...App
})
1
2
3
4
5
6
7
8
9
10

# 配置全局baseURL

api/api.js中配置全局baseURL,config/index.js中根据H5和APP平台配置baseURL。



 



// 设置默认配置
minRequest.setConfig((config) => {
  config.baseURL = globalConfig.baseUrl
  return config
})
1
2
3
4
5

# 不同的API可以单独配置baseURL

案例如下,不同的API可以添加第三个options参数单独配置baseURL和header。



 
 






getContributions(params = {}) {
  return minRequest.get(`/users/${params.name}/contributions`, null, {
    baseURL: globalConfig.baseUrlToken,
    header: {
      'Accept': 'text/html',
      'content-type': 'text/html; charset=utf-8'
    }
  })
}
1
2
3
4
5
6
7
8
9

# 统一API URL地址

api/api.js中统一配置API URL。

Last Updated: 8/20/2020, 2:21:14 PM