# 接口请求
# 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
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
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
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
2
3
4
5
6
7
8
9
# 统一API URL地址
在api/api.js中统一配置API URL。
← 引入iconfont Mock数据模拟 →