使用服务来连接AngularJS

时间:2016-11-17 08:05:56

标签: javascript jquery angularjs api frontend

在大规模应用程序中分离代码的斗争中,我实现了一个角度样板。看来我和Angular一样没有和其他Javascript框架一样的经验,我想对这个方法有一些输入。

使用端点时,事情会变得非常混乱,代码开始重复使用AngularJs的ESP。在其他人的项目上工作,我厌倦了......

$http({
   method: 'GET',
   url: '/posts'
}).then(function successCallback(response) {
  // code
}, function errorCallback(response) {
  // code
});

因此,我构建了一个基本上与http组件接口的组件,但是应用了我们当前的restful标准(正确处理http状态),范围,本地存储等,并结合了为严格描述端点和端点的端点接口实现服务的方法。他们将如何适应应用程序。

angular.module('Ripple').service('postModel', [function() {

'use strict';

return {

    /**
     * Rest Endpoint interface
     * @type {Object}
     */
    _rest: {
        getPosts: {
            url: 'http://localhost:3000/posts',
            method: 'GET',
            scopeUpdate: 'posts',
            localStorage: false,
            params: {
                // Endpoint params
            }
        },
        getPost: {
            url: 'http://jsonplaceholder.typicode.com/posts/',
            method: 'GET',
            scopeUpdate: 'post',
            localStorage: false,
            pagination: false,
            params: {
                id: 1
            }
        },
        getError: {
            url: 'https://demo0079948.mockable.io/posts',
            method: 'GET',
            scopeUpdate: 'post',
            localStorage: false,
            pagination: false,
            params: {
                // none
            }
        },
    },

    /**
     * Returns rest objects and allows to extend the params property
     * @param {string} method
     * @param {object} options
     * @return {object}
     */
    endPoint: function(endPointMethod, options) {
        var defaults = this._rest[endPointMethod];
        $.extend(defaults.params, options);
        return defaults;
    }

}

用于restHttpComponent

restHttpComponent.request(postModel.endPoint('getPosts', {
   dateFrom: currentDate
}));

任何人都可以看到这样的负面消息吗?

1 个答案:

答案 0 :(得分:1)

尝试将api终点替换为

' https://demo0079948.mockable.io/posts/ {ID}'