1.0.0 • Published 6 years ago
gedu-api-service v1.0.0
Api服务对象 - Server
npm run build
namespace: window.gEdu
version: 1.0.0
var server = new window.gEdu.Server([$debug,] [$serverType]);
@param: [$debug]{boolean} 用于切换API地址;
API地址存储在EduConfig.server.project对象中,
project对象包含项目名称属性。通过名称访问项目域名属性;
project: {
//主项目
master: {
domain: "http://api.edu24ol.com",
testDomain: ""
}
}
testDomain实际不存在,如果需要可以在实例化Server对象前自定义
EduConfig.server.project.master.testDomain = 'http://apitest.edu24ol.com';
@param: [$serverType] {String} 服务类型,默认:'normal'; 可选:'mvc'
如果你的服务是mvc架构,通过route来分配url,可以指定这个参数为“mvc”;
##Server提供的函数
1、server.getAsy(url, data)
2、server.postAsy(url, data)
3、server.putAsy(url, data)
4、server.delAsy(url, data)
跨域请求
@param: url {String}:请求地址
@param: data {Object}:post & put 必选,提交数据键值对
@returns {object} $Deferred.Promise
function demo() {
var loginPromise = server.postAsy(url, postData);
loginPromise.done(function (result) {
// 正确回调
});
loginPromise.fail(function (error) {
// 请求异常处理
});
};
嵌套和依赖:按序执行
// 第一次异步请求
loginPromise = server.postAsy(url, postData);
// pipe的意思是在说:请针对这个 Promise 对象给我一个回调,我会归还一个 Promise对象以表示回调运行的结果;
exitPromise = loginPromise.pipe(function (result) {
// 第二次异步请求
return server.getAsy(url);
});
exitPromise.done(function (result) {
// 正确回调
});
exitPromise.fail(function (e) {
// 请求异常处理
});
嵌套和依赖:合并执行
loginPromise = server.postAsy(login, postData);
userInfoPromise = loginPromise.pipe(function (data) {
// 合并两个异步请求
return $.when(server.getAsy(url1), server.getAsy(url2));
});
//当两个请求全部正确返回后
userInfoPromise.done(function (n, m) {
console.info(n[0]);// result1
console.info(m[0]);// result2
//正常处理
});
5、server.createFullUrl(projectName, interfaceName, data)
创建完整的API地址
@param: projectName {String}:项目名称
@param: interfaceName {String}:接口路径
@param: data {Object}:请求参数(get, delete)
@returns {String}
var server = new window.gEdu.Server('mvc'),
server2 = new window.gEdu.Server(),
url;
url = server.createFullUrl('master', 'User', {name: '888wj', pwd: '1111'});
console.log(url); // http://api.edu24ol.com/User888wj/1111
url = server2.createFullUrl('master', 'User', {name: '888wj', pwd: '1111'});
console.log(url); // http://api.edu24ol.com/User?name=888wj&pwd=1111
1.0.0
6 years ago