javascript - 想问下, 前端的接口如果封装成 js-sdk 的形式,该如何封装呢?

查看:531
本文介绍了javascript - 想问下, 前端的接口如果封装成 js-sdk 的形式,该如何封装呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

想问下, 前端的接口 如果想封装成 js-sdk(就是后端给前端封装好的一个js模块, 前端无需理会后台接口的具体url路径,前端只需要调用里面的一个方法即可, 总的来说就像微信sdk那玩意) 的形式,该如何封装呢?另外有没有例子参考一下或者建议呢?

解决方案

总的来说这玩意就是一个封装好的若干个ajax请求集合。
举个小例子:还可以自己扩展封装哈

!(function(win, doc) {

  function SDK(opt) {
    this.opt = opt;
  }
  SDK.prototype._ajax = function(param, callback) {
    // 省略代码,举个例子,直接返回参数
    if (typeof callback === 'function') callback(param);
  }

  // 私有方法,一般不提供的,为了扩展性
  SDK.prototype._update = function(key, defaultParam) {
    this[key] = function(param, callback) {
      param = Object.assign({}, defaultParam, param);
      this._ajax(param, callback);
    }
    return this;
  };
  SDK.prototype._remove = function(url) {
    delete this[url];
    return this;
  };

  // common 方法
  SDK.prototype.loginApi = function(param, callback) {
    param.time = new Date();
    return this._ajax(param, callback);
  }

  win.JSsdk = new SDK();

})(window, document);

// test
JSsdk.loginApi({ username: 'admin', pwd: '123456' }, function(res) {
  console.log(res);
});

JSsdk._update('logout', { redirect: 'http://aaa.com/bbb' });
JSsdk.logout({}, function(res) {
  console.log(res);
});

这篇关于javascript - 想问下, 前端的接口如果封装成 js-sdk 的形式,该如何封装呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆