【问题标题】:Angularjs fake backend rest apiAngularjs 假后端休息 api
【发布时间】:2015-12-05 10:34:04
【问题描述】:

我正在开发 AngularJS 前端 API。但我需要使用休息 API 来尝试我的应用程序的工作行为。所以我应该先创建后端服务。是否有任何类似服务的休息模拟器来代表后端。这样我就可以将前端和后端开发分开了。

【问题讨论】:

  • 您可以指向稍后可以被后端 URL 替换的虚拟 JSON 文件。

标签: javascript angularjs rest


【解决方案1】:

我找到了一种非常流畅和简单的方法来制作一个开发环境,它的行为与有后端一样。

这就是我所做的:

我创建了一个使用ngMockE2E 并包装我的应用模块的开发模块:

(function () {
    'use strict';

    var appDev = angular.module('appDev', ['app', 'ngMockE2E']);

    appDev.run(runAppDev);

    runAppDev.$inject = ['$httpBackend', '$log', '$resource'];

    function runAppDev($httpBackend, $log, $resource) {
        $log.info('You are now in dev mode');

        $httpBackend.whenPOST('/test').respond(
           $resource('mock/test.json').get()
        );

        // Catch-all pass through for all other requests
        $httpBackend.whenGET(/.*/).passThrough();
        $httpBackend.whenPOST(/.*/).passThrough();
        $httpBackend.whenDELETE(/.*/).passThrough();
        $httpBackend.whenPATCH(/.*/).passThrough();
    }
})();

每当我想模拟后端时,我都在初始化我的应用程序:

<html ng-app="appDev">
    ....
</html>

正如我所说,这种方法的优势在于,您可以像在具有后端的真实应用程序中一样实现资源服务(或 http 服务)。在appDev 模块中,您只需要说明您想要伪造哪些 API 路由返回一些模拟 json。在我的情况下,所有其他 API 路由都传递到后端。

到目前为止,这种方法使用起来最方便,因为它只涉及angular-mocks 库,没有其他任何内容。

【讨论】:

    【解决方案2】:

    您可以使用您期望返回的静态 json 对象创建一个目录,然后启动一个 simpe 服务器来提供这些文件

    例如,如果您在目录 DIR 中有一个文件 p.json,其内容如下: {“姓名”:“亨利”,“年龄”:12} 启动以下命令会将该文件发布到http://localhost:8000/p.json

    python -m SimpleHTTPServer 8000

    PS:这适用于您的 GET 方法,您的 PUT 和 POST 需要更复杂的东西,但这是一个开始

    【讨论】:

      【解决方案3】:

      在开发整个前端时,我正在使用这个libray 来模拟 API。

      或者您可以使用http://sinonjs.org/docs/#server 来获得伪造的 XMLHttpRequest 和完整的测试套件

      或者您可以创建静态的json 文件来故意查询。

      【讨论】:

        【解决方案4】:

        同时处理两者是一个很好的做法。

        1. 编写 REST 路由(+ 测试)
        2. 写一个前端页面/指令/视图/..(+tests)
        3. 转到 1。

        【讨论】:

          【解决方案5】:

          检查Atmo,一个通过用户界面轻松模拟Api的工具。

          【讨论】:

            猜你喜欢
            • 2014-11-09
            • 1970-01-01
            • 2014-11-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-05-31
            • 2012-06-29
            • 1970-01-01
            相关资源
            最近更新 更多