单独的 REST 后端的优点 API?
Advantages of a separate REST backend API?
背景:我是一名初级程序员,自学希望制作 SPA。我从 JavaScript、Jquery、PHP 和 MySQL 开始,现在对所有这些都非常有信心。我从 Ember 开始,现在正在从 PHP API 转向 Node。这让我更接近 Meteor...我知道我需要使用 Mongo 来代替,但是拥有一个集成的前端和后端似乎是明智的并且有一些优势。
所以我的问题是拥有单独的 REST 后端 API(例如 Express)而不是集成的 front/back(例如 Meteor)有什么优势。
突然想到的一个是我的应用程序将基于 tablet/pc,但将来我会想要一个不同的移动版本,所以我可以使用相同的 [=26] =].我知道上面的问题是这个堆栈问题的主要问题,但也许流星开发人员可以澄清这是否确实是一个问题。
提前致谢!
将前端、后端(Rest Api)和数据库等层分开的架构设计,是为了获得更好的可扩展性、可重用性和应用程序功能的逻辑分离器。例如:
Today make a web applications separated in 3 layer (frontend, backend,
and databases), if tomorrow you wanna do a mobile application you can
develop the application like a extra project in the frontend layer,
but use all the features developed in backend. Then the frontend
application not need servers why run inside every device, but maybe
the load in the backend servers increase, and you only need add 1 more
server in the backend layer.
这只是一个小例子,但却是这个移动应用程序新时代中最常见的案例。
在 MVC 架构中永远记住这一点:
前端:始终从后端调用服务、呈现视图和捕获数据。有时候搞点逻辑。
后端:接收请求,应用所有业务逻辑,在数据库中进行读写操作,以及return首选json格式的响应。
模型:存储数据、备份、slaves等
PD:如果您在此示例中使用流星,则需要 api 休息一下以开发移动应用程序。
对我来说,使用 rest API 会带来很多好处,它们轻巧、可扩展且整体可重用。
如今,使用垂直架构是一种趋势,这意味着 RestFul 服务具有单一职责,因为它扩展性更好,并且更容易将团队分配给 api,所以这样您就能够以非常有序的方式管理多个团队和 apis。这可能是 Twitter、wunderlist 和其他公司的工作方式,因为它是一种更好地扩展的解决方案。
看看这篇 talk Raffi Krikorian 的文章,他担任 Twitter 架构负责人已有一段时间了,但它值得每一分钟来说明一些优势。
你也可以看看下面的图表,我刚才做了它解释了 MVC 和 API 第一种架构之间的区别。
我已经使用 angular 和休息服务编写了一个休息应用程序,这对我来说是一次非常好的体验,没有回头路了。
祝你好运
Meteor 并不像您描述的那样真正 "integrate" 前端(客户端)和后端(服务器)。它仍然将它们维护为两个单独的层。 meteor 的美妙之处(除了非常棒的反应性之外)是它在任何地方都使用 Javascript,而不是在客户端使用 JS 而在服务器端使用其他语言,所以你可以使用相同的 APIs在前端和后端。尽管 Meteor 做了一些时髦的事情,比如让你在同一个文件中编写客户端和服务器代码,但它仍然需要你区分两者,服务器代码仍然只存储在服务器上,客户端代码仍然向下提供给客户端.
Meteor 还很年轻,但是开发者和社区非常活跃,你描述的一切都可以用它来实现。我已经使用 Meteor 大约 6 个月了,它还没有让我失望。我正在开发一个生产级应用程序,该应用程序还需要公开 REST API 以便在移动应用程序中使用,我在 Meteor 上做得非常成功(我刚刚使用来自 Android 设备并在 Meteor 应用程序中实时观察它的变化。太酷了!)。
我使用这个很棒的软件包 RestStop2 在 meteor 中构建 REST APIs,但不幸的是它被弃用了,所以我发布了一个更新版本。查看它以获取在 Meteor 中构建 REST APIs 的示例。它可以通过 Meteor 包管理器获得:https://atmospherejs.com/nimble/restivus
因此,为了回答您的问题,您总是希望将 REST API 分离到它自己的层中,但这在 Meteor 中是完全可能的。明确地说,您永远不会在 Meteor 应用程序中使用此 REST API。 Meteor 使用 DDP(而不是 HTTP),它使您可以更直接地连接到您的服务器,因此如果您通过 HTTP 从 Meteor 客户端访问 Meteor 服务器上的数据,您就做错了什么。当然,使用 Meteor,您的优势在于能够使用 REST API 中的现有代码。
有一篇非常好的文章解释了在 Meteor 中编写 REST API 的一些注意事项:http://www.meteorpedia.com/read/REST_API。
背景:我是一名初级程序员,自学希望制作 SPA。我从 JavaScript、Jquery、PHP 和 MySQL 开始,现在对所有这些都非常有信心。我从 Ember 开始,现在正在从 PHP API 转向 Node。这让我更接近 Meteor...我知道我需要使用 Mongo 来代替,但是拥有一个集成的前端和后端似乎是明智的并且有一些优势。
所以我的问题是拥有单独的 REST 后端 API(例如 Express)而不是集成的 front/back(例如 Meteor)有什么优势。
突然想到的一个是我的应用程序将基于 tablet/pc,但将来我会想要一个不同的移动版本,所以我可以使用相同的 [=26] =].我知道上面的问题是这个堆栈问题的主要问题,但也许流星开发人员可以澄清这是否确实是一个问题。
提前致谢!
将前端、后端(Rest Api)和数据库等层分开的架构设计,是为了获得更好的可扩展性、可重用性和应用程序功能的逻辑分离器。例如:
Today make a web applications separated in 3 layer (frontend, backend, and databases), if tomorrow you wanna do a mobile application you can develop the application like a extra project in the frontend layer, but use all the features developed in backend. Then the frontend application not need servers why run inside every device, but maybe the load in the backend servers increase, and you only need add 1 more server in the backend layer.
这只是一个小例子,但却是这个移动应用程序新时代中最常见的案例。
在 MVC 架构中永远记住这一点:
前端:始终从后端调用服务、呈现视图和捕获数据。有时候搞点逻辑。
后端:接收请求,应用所有业务逻辑,在数据库中进行读写操作,以及return首选json格式的响应。
模型:存储数据、备份、slaves等
PD:如果您在此示例中使用流星,则需要 api 休息一下以开发移动应用程序。
对我来说,使用 rest API 会带来很多好处,它们轻巧、可扩展且整体可重用。
如今,使用垂直架构是一种趋势,这意味着 RestFul 服务具有单一职责,因为它扩展性更好,并且更容易将团队分配给 api,所以这样您就能够以非常有序的方式管理多个团队和 apis。这可能是 Twitter、wunderlist 和其他公司的工作方式,因为它是一种更好地扩展的解决方案。
看看这篇 talk Raffi Krikorian 的文章,他担任 Twitter 架构负责人已有一段时间了,但它值得每一分钟来说明一些优势。 你也可以看看下面的图表,我刚才做了它解释了 MVC 和 API 第一种架构之间的区别。
我已经使用 angular 和休息服务编写了一个休息应用程序,这对我来说是一次非常好的体验,没有回头路了。
祝你好运
Meteor 并不像您描述的那样真正 "integrate" 前端(客户端)和后端(服务器)。它仍然将它们维护为两个单独的层。 meteor 的美妙之处(除了非常棒的反应性之外)是它在任何地方都使用 Javascript,而不是在客户端使用 JS 而在服务器端使用其他语言,所以你可以使用相同的 APIs在前端和后端。尽管 Meteor 做了一些时髦的事情,比如让你在同一个文件中编写客户端和服务器代码,但它仍然需要你区分两者,服务器代码仍然只存储在服务器上,客户端代码仍然向下提供给客户端.
Meteor 还很年轻,但是开发者和社区非常活跃,你描述的一切都可以用它来实现。我已经使用 Meteor 大约 6 个月了,它还没有让我失望。我正在开发一个生产级应用程序,该应用程序还需要公开 REST API 以便在移动应用程序中使用,我在 Meteor 上做得非常成功(我刚刚使用来自 Android 设备并在 Meteor 应用程序中实时观察它的变化。太酷了!)。
我使用这个很棒的软件包 RestStop2 在 meteor 中构建 REST APIs,但不幸的是它被弃用了,所以我发布了一个更新版本。查看它以获取在 Meteor 中构建 REST APIs 的示例。它可以通过 Meteor 包管理器获得:https://atmospherejs.com/nimble/restivus
因此,为了回答您的问题,您总是希望将 REST API 分离到它自己的层中,但这在 Meteor 中是完全可能的。明确地说,您永远不会在 Meteor 应用程序中使用此 REST API。 Meteor 使用 DDP(而不是 HTTP),它使您可以更直接地连接到您的服务器,因此如果您通过 HTTP 从 Meteor 客户端访问 Meteor 服务器上的数据,您就做错了什么。当然,使用 Meteor,您的优势在于能够使用 REST API 中的现有代码。
有一篇非常好的文章解释了在 Meteor 中编写 REST API 的一些注意事项:http://www.meteorpedia.com/read/REST_API。