1.3.6 • Published 4 years ago
apiurl v1.3.6
#转换URL地址,用于统一指向测试环境
stepA
$ cnpm/npm install apiurl
后将自动引入 axios
stepB
直接调用apiurl()方法
apiurl,并在构造函数中传入对应参数
可以直接使用 toString() 返回修改后的URL地址
该方法提供3个参数
* 转换当前地址
* 传入参数为一个对象,其中必需包含的参数有:
* @param {string} url 当前需要请求的地址
* 可选参数:
* @param {string} mark 需要标记的前缀,如果不设置,默认: test_
* @param {string} envName 当前环境变量的变量名称,不填默认: JMG_ENV
例如:
let apiurl = require("apiurl")
let result = await apiurl.post("localhost:8081/h", {mint:1});
let result = await apiurl.get("192.168.9.169/h", {mint:1});
当前地址如果为HTTPS的话,如果在接口前缀不加任何协议,则会原样使用当前浏览器地址的协议
apiurl("www.baidu.com") => http://test_www.baidu.com (默认使用:http://)
apiurl("xxx.xxx.xxx.xxx") => 无论在生产或开发环境,都会原样返回
apiurl("www.baidu.com","testingenvironment_","JMG_ENV") https://testingenvironment_www.baidu.com
Promise API 方式:
let p = () => {
return apiurl.post("localhost:8081/h", data);
}
let g = () => {
return apiurl.get("192.168.9.169:8081/h", data);
}
let value = await apiurl.axios.all([p(), g()]);
console.log(value)
CallBack 方式:
apiurl.axios.all([p(), g()]).then(apiurl.axios.spread((postResult, getResult) => {
console.log(postResult.data, getResult.data)
})).catch(err => {
})
实列化方式:
let apiurl = require("apiurl")
let api = new apiurl("www.baidu.com")
api.toString() => http://test_www.baidu.com (默认使用:http://)
let api= new apiurl("www.baidu.com","testingenvironment_")
api.toString() => https://testingenvironment_www.baidu.com
当在生产环境中(express,vue-cli) 中打包后,会自动去除前缀
发起Ajax请求
api.post/get/put/delete 等
api.post(url,data)
#0.1 调用示列:
let s = new apiurl("localhost:8081/h");
let data = {
mint: 1
}
s.axios.all([s.post(data), s.get(data)]).then(s.axios.spread((postResult, getResult) => {
let post = postResult.data
let get = getResult.data;
}))
也可同时发起多个并发请求
#0.1.1 调用示列
s.axios.all([g(data), p(data)])
.then(s.axios.spread((acct, perms) => {)
// Object {get: "1"}
// Object {post: 2}
})).catch(err => {
//如果其中一个失败,则全部请求失败
// Request failed with status code 500
console.log(err)
});
支持 Promise API
#0.2 示列如下:
try {
let datavArray = await s.axios.all([g(data), p(data)]);
//datavArray.length 为传入的请求的个数,此时为2
console.log(datavArray)
//datavArray[0].data => get(data) 的值
//datavArray[1].data => post(data) 的值
} catch (error) {
//如果其中一个失败,则全部请求失败
// Request failed with status code 500
console.log(error);
}
HTML静态页调用说明
HTML中引入JS文件 apiurl.js
* 调用debug 方法模板当前静态页面的环境变量 例如:debug(false); 为生产环境debug(true); 为测试环境
* 目前暂不支持同时发起多个并发请求
调用示例:
<script src="../javascripts/apiurl.js"></script>
let testurl= apiurl("localhost:8081/h")=> test_localhost:8081/h
let g = await apiurl.get("192.168.9.169:8081/h", {
mint: 1
});
let p = await apiurl.get("192.168.9.169:8081/h", {
mint: 1
});
let url = apiurl("www.baidu.com");
apiurl.get/post 可直接发送请求,调用方法与 #0.1 相同
支持 Promise API
#0.3 示列如下:
try {
let g = await apiurl.get(url,{mint:1});
let p = await apiurl.post(url,{mint:1});
} catch (error) {
}
同样支持new实列化方式调用
let api = new apiurl("192.168.9.169:8081", "tt_");
try {
let s = await api.get("/h", {
mint: 1
})
console.log(api.toString());
let p = await api.post("/h", {
data: 1
});
console.log(s.data, p.data)
} catch (error) {
}
let g = await api.get(router,obj);
let p = await api.post(router,obj);
1.3.6
4 years ago
1.3.5
4 years ago
1.3.4
4 years ago
1.3.3
4 years ago
1.3.2
4 years ago
1.3.1
4 years ago
1.3.0
5 years ago
1.2.9
5 years ago
1.2.8
5 years ago
1.2.7
5 years ago
1.2.6
5 years ago
1.2.5
5 years ago
1.2.4
5 years ago
1.2.3
5 years ago
1.2.2
5 years ago
1.2.1
5 years ago
1.2.0
5 years ago
1.1.9
5 years ago
1.1.8
5 years ago
1.1.7
5 years ago
1.1.6
5 years ago
1.1.5
5 years ago
1.1.4
5 years ago
1.1.3
5 years ago
1.1.2
5 years ago
1.1.1
5 years ago
1.1.0
5 years ago
1.0.9
5 years ago
1.0.8
5 years ago
1.0.7
5 years ago
1.0.6
5 years ago
1.0.5
5 years ago
1.0.4
5 years ago
1.0.3
5 years ago