AngularJS可以在没有REST API的情况下使用吗?

9
当我使用node.js创建一个简单的网站时,我可以使用视图引擎(例如jade)和控制器将数据提供给它(例如简单的待办事项列表)。然而,如果我决定将AngularJS作为客户端框架,则似乎必须在后端实现REST API来从中获取数据。几乎所有我在线上看到的AngularJS示例都有这种基本架构:客户端(angular)通过REST API与服务器通信。
AngularJS能否在没有REST API的情况下使用?如果可以,我应该这样做还是避免这样做?有没有关于在没有REST API后端的情况下使用AngularJS的建议/最佳实践?

为什么你想在应用程序中使用非RESTful后端? - ThiefMaster
1
只需使用 node.js 作为 REST API 和 Angular.js 作为客户端框架即可与后端进行通信。如果你害怕 REST,注意,这是一项无痛的工作。 - softvar
@ThiefMaster,因为我已经有一个使用node.js + jade实现控制器和jade文件中的逻辑的工作应用程序(例如if / else,循环等...)。将AngularJS添加到混合中需要重写当前逻辑以便从REST API中使用。我想知道是否可以在不费力地做那个步骤情况下使用AngularJS。 - matori82
4个回答

7
当然。即使您从未使用$http服务与服务器通信,Angular仍可以在您的站点上完成许多工作。您仍然可以利用有助于管理DOM的实用程序。
话虽如此,大多数现代应用程序需要从服务器获取数据。有很多原因为什么你可能需要这样做。例如,如果您有需要注册的用户,则需要将其用户名和密码存储在只有您的服务器可以访问的数据库中。然后,您的服务器将提供一些URL,可以通过Angular的$http服务进行通信。
如果您有一个调用服务器的应用程序,但想关闭网络通信以进行测试,您可以使用模拟$http调用响应。Angular为此提供了$httpBackend。您可以使用它来设置虚拟URL,假装响应您的$http调用,以便您的$http调用不知道它们实际上没有与服务器通信。
authRequestHandler = $httpBackend.when('GET', '/auth.py')
                       .respond({userId: 'userX'}, {'A-Token': 'xxx'});

在测试期间,无需REST后端即可测试您的代码,非常适合。


1

REST代表表述性状态转移,基本上是指事物或资源而不是动作。是的,AngularJS可以在没有REST API的情况下使用。


1
你可以使用nodeJS作为restful API,AngularJS作为JavaScript框架。
即使没有restful API,AngularJS也是一个非常强大的工具,在项目中使用它可以发挥其全部潜力(完全扩展的Web应用程序),但是如果要充分利用它,你需要一个restful API。

0

对于非RESTful API,使用$http;对于RESTful API,使用$resource。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接