Angularjs 单独的REST后端API的优点?

Angularjs 单独的REST后端API的优点?,angularjs,ember.js,express,meteor,sails.js,Angularjs,Ember.js,Express,Meteor,Sails.js,背景:我是一个初学者程序员,自学成才,希望能做一个SPA。我从JavaScript、Jquery、PHP和MySQL开始,现在对所有这些都很有信心。我从Ember开始,现在不再使用PHP API来创建节点。这让我更接近流星。。。我知道我需要使用Mongo来代替它,但是有一个集成的前端和后端似乎是明智的,并且有一些优势 所以我的问题是,使用单独的REST后端API(如Express)而不是集成的前端/后端API(如Meteor)有什么好处。 我脑海中浮现的一个想法是,我的应用程序将是基于平板电脑/

背景:我是一个初学者程序员,自学成才,希望能做一个SPA。我从JavaScript、Jquery、PHP和MySQL开始,现在对所有这些都很有信心。我从Ember开始,现在不再使用PHP API来创建节点。这让我更接近流星。。。我知道我需要使用Mongo来代替它,但是有一个集成的前端和后端似乎是明智的,并且有一些优势

所以我的问题是,使用单独的REST后端API(如Express)而不是集成的前端/后端API(如Meteor)有什么好处。

我脑海中浮现的一个想法是,我的应用程序将是基于平板电脑/个人电脑的,但将来我会想要一个不同的移动版本,所以我可以使用相同的API。我知道上面的问题是这个堆栈问题的主要关注点,但是如果meteor开发者能够澄清这是否确实是一个关注点的话


提前谢谢

在前端、后端(restapi)和数据库等层中分离的体系结构的设计是为了获得更好的可伸缩性、可重用性和应用程序功能的逻辑分隔。例如:

今天,我们将web应用程序分为三层(前端、后端、, 如果明天你想做一个移动应用,你可以 像在前端层开发额外项目一样开发应用程序, 但是使用后端开发的所有功能。然后是前端 应用程序不需要服务器为什么要在每个设备中运行,但可能 后端服务器中的负载增加,您只需再添加1个 后端层中的服务器

这只是一个小小的例子,但却是这个移动应用新时代最常见的情况

在MVC体系结构中,请始终记住这一点:

前端:始终从后端调用服务、呈现视图和捕获数据。有时会有一个小小的逻辑

后端:接收请求,应用所有业务逻辑,在数据库中执行读写操作,并返回首选json格式的响应

型号:存储数据、备份、从机等


PD:如果你在这个例子中使用meteor,你需要做一个api Rest来开发移动应用程序

对我来说,使用restapi有很多优点,它们是轻量级的、可扩展的和可重用的

今天,使用垂直体系结构是一种趋势,这意味着拥有一个单一责任的RestFul服务,这是因为它具有更好的扩展性,并且更容易将一个团队分配给一个api,这样您就能够以非常有序的方式管理多个团队和api。这可能就是Twitter、wunderlist和其他公司的工作方式,因为这是一个更好地扩展的解决方案

看看Raffi Krikorian的这篇文章,他曾经是Twitter架构的负责人,虽然有点老了,但每一分钟都值得一看,并说明了一些优势。 你也可以看看下面的图表,我刚才做过,它解释了MVC和API第一种架构之间的区别

我使用angular和rest服务编写了一个rest应用程序,这对我来说是一个非常好的体验,没有回头路了

祝你好运

Meteor并没有像你描述的那样真正“集成”前端(客户端)和后端(服务器)。它仍然将它们保持为两个独立的层。meteor的美妙之处(除了令人难以置信的可怕反应)在于它在任何地方都使用Javascript,而不是在客户端使用JS和在服务器上使用其他语言,因此您可以在前端和后端使用相同的API。虽然Meteor做了一些时髦的事情,比如让您在同一个文件中编写客户端和服务器代码,但它仍然要求您区分两者,服务器代码仍然只存储在服务器上,客户端代码仍然提供给客户端

Meteor还很年轻,但开发人员和社区都非常活跃,您描述的一切都可以通过它实现。我已经和Meteor合作了6个月了,它还没有让我失望。我正在开发一个生产级应用程序,它还需要在移动应用程序中公开一个REST API以供使用,我在Meteor上做得相当成功(我刚刚使用Android设备上的REST端点更新了一个用户配置文件,并实时在Meteor应用程序中看到了它的变化。太酷了!)

我使用这个很棒的包RestStop2在meteor中构建RESTAPI,但不幸的是它被弃用了,所以我发布了一个更新版本。查看一下Meteor中构建RESTAPI的示例。可通过Meteor软件包管理器获取:

所以,为了回答您的问题,您总是希望将RESTAPI分离到它自己的层中,但这在Meteor中是完全可能的。为了清楚起见,您永远不会从Meteor应用程序中使用此REST API。Meteor使用DDP(而不是HTTP),这使您可以更直接地连接到服务器,因此,如果您通过HTTP从Meteor客户端访问Meteor服务器上的数据,您就犯了错误。当然,使用Meteor,您可以使用RESTAPI中的现有代码


有一篇非常好的文章解释了在Meteor中编写RESTAPI的一些注意事项:

我没有想到/看到流星有自己的RESTAPI。我知道我有一些阅读要做,但是我对RestStop2被弃用感到有点困惑,并且(不是对你不利!)为什么你必须发布一个更新版本。保持良好的分离,从而在默认情况下提供一个非常干净的REST层,这不是标准做法吗?RestStop2被弃用,因为一个被广泛接受为Meteor(Iron Router)默认路由解决方案的包开始支持服务器端路由。RestStop2开发人员建议人们改用Iron路由器,但仍然有足够的功能,值得打包