使用angular和mock开发所有json请求/响应

使用angular和mock开发所有json请求/响应,json,angularjs,Json,Angularjs,在开发将执行实际json请求/响应的后端服务之前,我是否可以使用angularjs开发整个网站前端?i、 e.保存到数据库的crud操作等 有人能提供一些关于如何做到这一点的见解吗?您可以通过使用本地存储服务并在REST API可用时将其替换为实际服务来实现这一点 以下是如何实现本地存储服务的示例: app.factory('user', function($rootScope) { var userJson = window.localStorage['appUser']; var

在开发将执行实际json请求/响应的后端服务之前,我是否可以使用angularjs开发整个网站前端?i、 e.保存到数据库的crud操作等


有人能提供一些关于如何做到这一点的见解吗?

您可以通过使用本地存储服务并在REST API可用时将其替换为实际服务来实现这一点

以下是如何实现本地存储服务的示例:

app.factory('user', function($rootScope) {

  var userJson = window.localStorage['appUser'];

  var user = userJson ? JSON.parse(userJson) : {
    username: undefined,
    password: undefined
  };

  $rootScope.$watch(function() { return user; }, function() {
    window.localStorage['appUser'] = JSON.stringify(user);
  }, true);

  return user;
});

有关这种方法的更多信息,请查看Igor Minár的。

我目前正在从事一个项目,我必须完成同样的任务。有几个选项,包括硬编码JSON或从localstorage引用JSON。我决定采取另一种方法,对静态json文件进行$http.get()调用,因此我所需要做的就是在完成后用REST服务调用替换硬编码的json文件

return $http.get('example.json').then(function(result) {
            /* ... Stuff on success ... */
        },
        function(result){
            /* ... Stuff on failure ... */
        }
看一看。它是一个专门为使用angularJS的端到端测试设计的模拟框架,但也可以用于完全模拟RESTAPI


使用此框架的优点是,在切换到真正的后端时,只需对前端代码进行很少的更改。您只需切换ng app标记并删除对模拟脚本的引用,就这样。当然,您可以在端到端测试中重用相同的模拟API。缺点(与使用本地存储相反)是,刷新页面(重新加载angularJS应用程序)时,所有修改的数据都将消失,但如果您正在开发一个真正的单页web应用程序,而不进行页面刷新,那么这并不是一个真正的问题。

使用静态json数据代替json请求?你应该知道你的服务最终会返回什么,所以angularjs使用$http.get处理所有请求?您刚刚将其修改为链接到返回json的文件,但什么是runid?您可能有10个不同的调用,因此每个调用都有自己的静态文件?我为最终需要的每个REST web服务调用设置了$http.get。这完全满足了我的要求,可能会因您的情况而有所不同。在开发web服务时,我创建了一个硬编码的JSON响应来模拟REST响应。“RunId”只是我代码中的一个例子。@ral8我喜欢这种方法。我正在运行一个Angular应用程序,并通过Sinatra代理我的请求。我正在从公用文件夹获取json文件,但我想知道,公开访问包含应用程序结构的json文件是否存在安全问题?很酷,但如何为此类服务/工厂定义一些初始模拟数据?比如我想在我的应用程序中加载一些测试用户?我发现这篇文章:--非常有用!