【发布时间】:2015-12-05 10:34:04
【问题描述】:
我正在开发 AngularJS 前端 API。但我需要使用休息 API 来尝试我的应用程序的工作行为。所以我应该先创建后端服务。是否有任何类似服务的休息模拟器来代表后端。这样我就可以将前端和后端开发分开了。
【问题讨论】:
-
您可以指向稍后可以被后端 URL 替换的虚拟 JSON 文件。
标签: javascript angularjs rest
我正在开发 AngularJS 前端 API。但我需要使用休息 API 来尝试我的应用程序的工作行为。所以我应该先创建后端服务。是否有任何类似服务的休息模拟器来代表后端。这样我就可以将前端和后端开发分开了。
【问题讨论】:
标签: javascript angularjs rest
我找到了一种非常流畅和简单的方法来制作一个开发环境,它的行为与有后端一样。
这就是我所做的:
我创建了一个使用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 库,没有其他任何内容。
【讨论】:
您可以使用您期望返回的静态 json 对象创建一个目录,然后启动一个 simpe 服务器来提供这些文件
例如,如果您在目录 DIR 中有一个文件 p.json,其内容如下: {“姓名”:“亨利”,“年龄”:12} 启动以下命令会将该文件发布到http://localhost:8000/p.json
python -m SimpleHTTPServer 8000
PS:这适用于您的 GET 方法,您的 PUT 和 POST 需要更复杂的东西,但这是一个开始
【讨论】:
在开发整个前端时,我正在使用这个libray 来模拟 API。
或者您可以使用http://sinonjs.org/docs/#server 来获得伪造的 XMLHttpRequest 和完整的测试套件
或者您可以创建静态的json 文件来故意查询。
【讨论】:
同时处理两者是一个很好的做法。
【讨论】:
检查Atmo,一个通过用户界面轻松模拟Api的工具。
【讨论】: