我正在开发一个大型 Angular 应用程序,它需要在浏览器中模拟整个 API(也称为无后端开发)。我的应用程序中有很多不同的部分和视图,每个部分都有自己的模拟定义。
我知道我可以使用ngMock
模块的$httpBackend
服务来模拟 AJAX 调用。这就是我想要的。我在 jsfiddle 找到了一个工作片段。
但是我缺少的是如何将其拆分为多个文件?正如我所说,我的应用程序将有数百个页面,甚至可能有更多的 RESTful 资源,我不能简单地将其放入一个源文件中。这作为架构问题:将数千个调用划分为简单模拟相同 API 的不同文件的最佳方法是什么(即有效、可扩展且易于维护) ?whenGET
whenPOST
如何根据项目文件结构分离模拟?应用程序中的每个模块都应该有一个单独的.run()
方法吗?我可以从 JSON 文件加载模拟吗?
我将不胜感激解释和演示
为了让回答更容易,下面是小提琴的相关部分:
myApp.run(function ($httpBackend) {
var phones = [{name: 'phone1'}, {name: 'phone2'}];
$httpBackend.whenPOST('/phones').respond(function (method, url, data, headers) {
console.log('Received these data:', method, url, data, headers);
phones.push(angular.fromJson(data));
return [200, {}, {}];
});
$httpBackend.whenGET('/phones').respond(function (method, url, data) {
console.log("Getting phones");
return [200, phones, {}];
});
$httpBackend.whenGET(/\.html$/).passThrough();
});