想问下, 前端的接口如果封装成 js-sdk 的形式,该如何封装呢?
高洛峰
高洛峰 2016-11-17 16:10:51
0
1
1313

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

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(1)
三叔

总的来说这玩意就是一个封装好的若干个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);
});


いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート