1.0.0 • Published 6 years ago

gedu-api-service v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
6 years ago

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